Что его не устраивает? Ответ выдается верный. Условия выполнены
package com.javarush.task.pro.task09.task0906;
/*
Двоичный конвертер
*/
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 "";
else {
String binaryNumber = "";
for (int i = 0; i >= 0; i++) {
binaryNumber = String.valueOf(decimalNumber % 2) + binaryNumber;
decimalNumber = (int) decimalNumber / 2;
if (decimalNumber == 0) break;
}
return binaryNumber;
}
}
public static int toDecimal(String binaryNumber) {
if (binaryNumber == null || binaryNumber == "") return 0;
else {
int decimalNumber = 0;
int degree = 0;
for (int i = binaryNumber.toCharArray().length - 1; i > 0; i--) {
decimalNumber = (int) (decimalNumber + binaryNumber.toCharArray()[i] * Math.pow(2, degree++));
}return decimalNumber;
}
}
}
toDecimal()Вы используете коды символов строки, а не числа 0 и 1...'0'- это не число 0, а символ'1'- это не число 1."100").