Java - 将boolean []转换为十进制

时间:2010-08-16 17:35:42

标签: java boolean decimal

布尔数组可以被认为是二进制数,例如

boolean[] four = {true, false, false}; //100

我想将这样的数组转换为十进制等效数,例如

int decimal = convertBooleanArrayToDecimal(four);
//decimal == 4

我该怎么办?

干杯,

皮特

2 个答案:

答案 0 :(得分:5)

尝试这样的事情。

long result = 0;
for (boolean bit : four) {
    result = result * 2 + (bit ? 1 : 0);
}

答案 1 :(得分:3)

另一种解决方案:

long result = 0;
for (boolean bit: boolArray)
{
    result <<= 1;
    if (bit) result += 1;
}

这在数学上等同于Nikita的解决方案,但我发现位移版本更清晰。