Я работаю над этой программой, которая берет двоичную строку и преобразует ее в десятичную, используя это руководство для преобразования из двоичного в десятичное. Когда я запускаю цикл for в моей голове, я получаю правильные результаты. И все же, когда я запускаю свою программу, я получаю этот странный вывод:
1
3
7
15
31
63
127
Фактический вывод должен выглядеть следующим образом:
1
2
5
11
22
44
89
Я не могу понять это для жизни меня. Почему моя программа делает это? Здесь текущий исходный код:
public class BinaryToDecimal
{
public static void main(String[] args)
{
String binary = "1011001";
int toMultiplyBy;
int decimalValue = 0;
for (int i = 1; i <= binary.length(); i++)
{
int whatNumber = binary.indexOf(i);
if (whatNumber == 0)
{
toMultiplyBy = 0;
}
else
{
toMultiplyBy = 1;
}
decimalValue = ((decimalValue * 2) + toMultiplyBy);
System.out.println(decimalValue);
}
}
}