Никак не могу понять почему не засчитывает второе условие. Помогите пожалуйста.
public class Solution {
public static void main(String[] args) {
int decimalNumber = Integer.MAX_VALUE;
System.out.println("Десятичное число " + decimalNumber + " равно двоичному числу " + toBinary(decimalNumber));
String binaryNumber = "1111111111111111111111111111111";
System.out.println("Двоичное число " + binaryNumber + " равно десятичному числу " + toDecimal(binaryNumber));
}
public static String toBinary(int decimalNumber) {
if(decimalNumber == 0){
return "";
}
StringBuilder binary = new StringBuilder();
while (decimalNumber > 0){
binary.insert(0, decimalNumber % 2);
decimalNumber = decimalNumber / 2;
}
return binary.toString();
}
public static int toDecimal(String binaryNumber) {
int desat = 0;
int length = binaryNumber.length();
if(binaryNumber == null || binaryNumber.equals("")){
return desat;
}
for (int i = 0; i < length; i++) {
char ch = binaryNumber.charAt(i);
if(ch == '1'){
desat += (int) Math.pow(2, length - 1 - i);
}
}
return desat;
}
}
Смоленков Александр
26 уровень
Почему не проходит второе условие?
Решен
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Андрей
16 марта 2025, 22:40решение
Ну как минимум сначала надо проверить, что binaryNumber не null, а потом вызывать у него length. У тебя все наоборот и как результат - NullPointerException:
+3