- Java的byte范围是-128~127
byte转成无符号数
byte & 0xff
- 取字节的第n位
比如要取字节第8位
byte & 0b10000000 >> 7
取字节的前4位
byte & 0b11110000 >> 4
总结就是,将字节要取的位0b放1,进行&运算,然后右移>>去掉无用位
- 多字节转成整数
协议经常用多个字节表示数据
比如两个字节表示年份,那么计算年份为:
int year = byte1 << 8 | byte2;//因为一个字节占8位,将byte1左移8位再和byte2合并成一个数
同理3个字节转成一个数就是
int data = byte3 << 16 | byte2 << 8 | byte1