我需要在 Java 中将一个字节转换为 4 个布尔值的数组。我该怎么办?
根据 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 运算符 (&
)如果该位被设置,您将得到该值,否则为零。如果您想检查除最右边的四个位之外的不同位,则必须创建不同的位掩码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)