Объясните, почему вычисление десятичного числа идёт неправильно.
public static int toDecimal(String binaryNumber) {
int decimalNumber1 = 0;
char[] number = binaryNumber.toCharArray();
if (!(binaryNumber == "" || binaryNumber == null)) {
for (int j = 0; j < binaryNumber.length(); j++) {
decimalNumber1 = decimalNumber1 + (((int) (number[binaryNumber.length() -j - 1])) * ((int) Math.pow(2, j)));
}
return decimalNumber1;
} else {//напишите тут ваш код
return 0;
}
}
_A_L_E_X_
25 уровень
Почему вычисление десятичного числа идёт неправильно.
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia VolkovaJava Developer в DXCMaster
24 января 2022, 08:31
Тут ты получаешь символ (char)
А числовое значение символа (codepoint) не равно цифре, которую обозначает этот символ.
Например, символ '0' имеет числовое значение 48. А символ '1' - 49.
И еще - если binaryNumber будет null, твой код упадет с ошибкой.
0
_A_L_E_X_
24 января 2022, 13:03
спасибо
0