В Java код для преобразования двоичной строки в целое число будет иметь вид: -
int strToInt(String str) {
int sum=0;
for(int i = str.length()-1; i >= 0; i--) {
if(str.charAt(i) == '1')
sum+=Math.pow(2, str.length() - 1 - i);
}
return sum;
}
Мы знаем, что двоичная строка преобразуется следующим образом: -
int («10110») = 1 * 2 4 + 0 * 2 3 + 1 * 2 2 + 1 * 2 1 + 0* 2 0
, о котором стоит задуматься, - это умножение 2 length - 1 - index на соответствующий бит.
Код будет работать какследует: -
index 0 1 2 3 4
length-1-index 4 3 2 1 0
2^(length-1-index) 2^4 2^3 2^2 2^1 2^0
Corresponding Bits of bitstring 1 0 1 1 0
Multiplication of the above two columns 16 0 4 2 0
Суммируя последнюю строку, мы получаем 22, что соответствует целому числу.