清秀秋天

文章
9
资源
0
加入时间
2年10月24天

JAVA实现类似C语言联合体般 充分使用bit位存储数据的方法之一

对接中我遇到的第一个问题就是数据封装和解析都是按bit位算的,一个数据占多少个bit这样的。现在遇到的问题就比如说,现在用两个byte来存CTRL,三个bit用来存版本号,一个bit用来做判断是否需要ACK,三个bit用来存优先级,9个bit用来存报文序号。对于C语言来说,这没什么,定义一个联合体就行了,但是对于java来说,就有点晕了,因为平常我们用到的最小的是byte,要这样操作bit位的话,我们需要一大堆位运算,想想就很可怕。虽然可以用C写,然后用JNI调用,但是不甘心我的还是想用java