在Java中强制转换布尔数组?

在Java中强制转换布尔数组?,java,casting,boolean,Java,Casting,Boolean,在Java中,我可以将布尔数组强制转换为什么?如果我能说 boolean[] bools = new boolean[8]; int j = (int)bools; 但是我不确定这在Java中是否可行。不,你不能用布尔[]-但是听起来你可能需要一个紧凑的表示一组布尔值的表达式。不,你不能用布尔[]-但听起来您可能需要一个压缩表示一组布尔值的数组。如果您需要位模式,我认为最好使用位掩码,例如 final int BIT_1 = 0x00000001; final int BIT_2 = 0x00

在Java中,我可以将布尔数组强制转换为什么?如果我能说

boolean[] bools = new boolean[8];
int j = (int)bools;

但是我不确定这在Java中是否可行。

不,你不能用
布尔[]
-但是听起来你可能需要一个紧凑的表示一组布尔值的表达式。

不,你不能用
布尔[]
-但听起来您可能需要一个压缩表示一组布尔值的数组。

如果您需要位模式,我认为最好使用位掩码,例如

final int BIT_1 = 0x00000001;
final int BIT_2 = 0x00000002;

// represents a bit mask
int value;

// enable bit 2
value |= BIT_2

// switch off bit 1
value &= ~BIT_1

// do something if bit 1 is set...
if (value & BIT_1) {

请参阅更多示例。

如果您想要位模式,我认为最好使用位掩码,例如

final int BIT_1 = 0x00000001;
final int BIT_2 = 0x00000002;

// represents a bit mask
int value;

// enable bit 2
value |= BIT_2

// switch off bit 1
value &= ~BIT_1

// do something if bit 1 is set...
if (value & BIT_1) {

更多示例,请参见。

Java布尔值的大小是特定于实现的,在任何情况下都可能不是一个位。
如果您想要一种简单的方法来操作位,请看一看。

Java布尔值的大小是特定于实现的,并且在任何情况下都可能不是一个位。
如果你想要一种简单的方法来操作位,请看。

你可以将
布尔[]
转换为
对象,但仅此而已。

你可以将
布尔[]
转换为
对象,但仅此而已。

这里有一种快速而肮脏的方法可以将
布尔[]
转换为整数:

static int intFromBooleanArray(boolean[] array) {
    return new BigInteger(Arrays.toString(array)
                          .replace("true", "1")
                          .replace("false", "0")
                          .replaceAll("[^01]", ""), 2).intValue();
}
例如:

intFromBooleanArray(new boolean[] {true, false, true, false, true, false});
// => 42.

下面是一种将
boolean[]
转换为整数的快捷方法:

static int intFromBooleanArray(boolean[] array) {
    return new BigInteger(Arrays.toString(array)
                          .replace("true", "1")
                          .replace("false", "0")
                          .replaceAll("[^01]", ""), 2).intValue();
}
例如:

intFromBooleanArray(new boolean[] {true, false, true, false, true, false});
// => 42.

是否将布尔数组视为位模式并转换为模式的int值?是否尝试获取指向布尔数组的指针?您对布尔数组如何映射为整数有何期望?是否将布尔数组视为位模式并转换为模式的int值?是否尝试获取指向布尔数组的指针?您对布尔数组如何映射为整数有何期望?能否在etc部分添加更多细节?能否在etc部分添加更多细节?它们不仅是特定于实现的,而且几乎总是完整的“int”大小(或者更准确地说,是机器字大小)。不这样做会降低系统的速度。它们不仅是特定于实现的,而且几乎总是完整的“int”大小(或者更准确地说,是机器字大小)。不这样做会降低系统的速度。