有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java将布尔[]转换为十进制

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

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

我想把这样一个数组转换成它的十进制等价物

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

我怎样才能做到

干杯

皮特


共 (2) 个答案

  1. # 1 楼答案

    另一种解决方案:

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

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

  2. # 2 楼答案

    试试这样

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