将String二进制转换为整数

时间:2016-01-27 16:39:46

标签: java

如何在不使用乘法,除法或mod的情况下执行此操作?

我带来了解决方案,但它需要倍增。

public StringBToInt(String b) {
    int value = 0;
    for(int z = 0; z < b.length(); z++) {
        value = value * 2 + (int)b.charAt(i) - 48;
    }
}
编辑:抱歉!只允许使用3个Java API。 length(),charAt()和equals()

4 个答案:

答案 0 :(得分:2)

不使用乘法,使用按位移位运算符:

public StringBToInt(String b) {
    int value = 0;
    for(int z = 0; z < b.length(); z++) {
        if(b.charAt(z) == '1'){
            shift = b.length()-z-1;
            value += (1 << shift);
        }
    }
}

答案 1 :(得分:1)

使用Integer.valueOf(String, int)方法:

Integer.valueOf('10101',2)

答案 2 :(得分:1)

尝试使用Integer.parseInt(..),如下所示:

  int value = Integer.parseInt(b, 2);

Ofcourse b是二进制字符串。

答案 3 :(得分:0)

您可以使用Integer.parseInt方法执行此操作。

String binary = "101010"
int value = Integer.parseInt(binary, 2);

&#39; 2&#39;在Integer.parseInt中意味着解析基数2中的String