整数通常是4个字节.但是如果存储像99这样的小数字,则其他三个字节存储8x 0值位.规范要求您使用一个整数存储(4字节)在其字节中存储4个不同的较小数字.
最简单的方法是在4字节的数组上使用toInt函数,例如(没有byte []长度检查也没有测试过这个功能 – 它只是说明性的)
public static final int toInt(byte[] b)
{
int l = 0;
l |= b[0] & 0xFF;
l <<= 8;
l |= b[1] & 0xFF;
l <<= 8;
l |= b[2] & 0xFF;
l <<= 8;
l |= b[3] & 0xFF;
return l;
}
byte[] bytes = new byte[] {99, 4, 9, 0};
int i = toInt(bytes, 0);
32位的int
11110101 00000100 00001001 00000000
^byte ^byte ^byte ^byte
int中的每个8位块足以“编码”/“存储”较小的数字.因此,int可用于将4个较小的数字混合在一起.