在物联网中,协议传输时常使用byte作为存储单位,但在一些协议中,为了节省开销,常常会使用
bit作为存储单位,以便于节省资源,高效传输。
换算单位:
int = 4byte
byte = 8bit
int转单个byte
int a = 10;
byte b = (byte)a;
int转byte数组
public static byte[] intToBytes(int value) {
byte[] src = new byte[4];
src[0] = (byte) ((value>>24) & 0xFF);
src[1] = (byte) ((value>>16)& 0xFF);
src[2] = (byte) ((value>>8)&0xFF);
src[3] = (byte) (value & 0xFF);
return src;
}
byte、short与int之间的相互转换就不描述了,我的其他帖子有详细转换
下面是byte转bit
byte转换为bit数组
/**
* 数组长度值为8,每个值代表bit,即8个bit。bit7 -> bit0
* bit数组,bit7 -> bit0
*/
public static byte[] byteToBitOfArray(byte b) {
byte[] array = new byte[8];
for (int i = 7; i >= 0; i--) {
array[i] = (byte)(b & 1);
b = (byte) (b >> 1);
}
return array;
}
转换之后的数组即为包含8个bit的数组,顺序是 bit7至bit0