根据Michael
Petrotta对您的问题的评论,您需要确定8位字节中的哪些位应测试所得的布尔数组。出于演示目的,我们假设您需要最右边的四个位,然后应该可以执行以下操作:
public static boolean[] booleanArrayFromByte(byte x) { boolean bs[] = new boolean[4]; bs[0] = ((x & 0x01) != 0); bs[1] = ((x & 0x02) != 0); bs[2] = ((x & 0x04) != 0); bs[3] = ((x & 0x08) != 0); return bs;}本例中的十六进制值(
0x01,
0x02等)是特殊的位掩码,在所需的位置仅设置了一个位。因此,0x01仅设置了最右边的位,0x08仅设置了从右开始的第四位。通过使用按位AND运算符(
&)将这些值与给定字节进行测试,如果该位置1,则将获得该值;否则,将返回零。如果要检查除最右边的四个位以外的其他位,则必须创建不同的位掩码。



