如何在java中将数字转换为布尔数组?

Lar*_*mbo -1 java arrays byte boolean

可能重复:
在Java中将字节转换为长度为4的布尔数组

我目前正在学习java,并制作游戏.我已经遇到了这种情况,我需要为游戏制作一些测试数据.

我使用2D数组(游戏地图)中的切片,每个切片需要四个布尔值.因此,而不是写在真或假地砖,我想用一个简单的字节,二进制.

示例:"0b0110"而不是"false,true,true,false"

所以我需要一种方法我的二进制写入字节转换布尔数组.

Ted*_*opp 5

你可以这样做:

byte b = 0b0110;
boolean [] flags = new boolean[4];
for (int i = 0; i < 4; ++i) {
    flags[i] = (b & (1 << i)) != 0;
}
Run Code Online (Sandbox Code Playgroud)

走另一条路:

boolean [] flags = {false, true, true, false};
byte b = 0;
for (int i = 0; i < 4; ++i) {
    if (flags[i]) b |= (1 << i);
}
Run Code Online (Sandbox Code Playgroud)

我建议使用byteboolean原语,除非你需要将它们包装起来ByteBoolean出于其他原因.