Неизвестно почему метод toDemical работает некорректно. При вводе изначально заданного числа вывод правильный, но если поменять вывод - числа не сходятся. Также непонятно почему валидатор не пропускает решение метода toBinary. Заранее спасибо всем, кто поможет с решением.
package com.javarush.task.pro.task09.task0906;
import java.util.regex.Pattern;
/*
Двоичный конвертер
*/
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) {
//напишите тут ваш код
String bosinn = "";
if (decimalNumber<=0) return bosinn;
int bin = 0;
while (decimalNumber > 0) {
bin = decimalNumber%2;
String str = Integer.toString(bin);
bosinn = bosinn + str;
decimalNumber = decimalNumber/2;
}
return bosinn;
}
public static int toDecimal(String binaryNumber) {
int sum = 0;
if (binaryNumber == null || binaryNumber.equals("")) return sum;
char[] bosinn = binaryNumber.toCharArray();
for (int i = bosinn.length-1; i >= 0; i--) {
if (bosinn[i] == 0) {
continue;
} else {
sum += Math.pow(2, i);
}
}
return sum;
}
}