Вроде бы задача соответствует условию, но валидация не принимает: 1)Убедись, что метод toBinary(int) возвращает пустую строку, если на вход получает число, меньшее или равное 0. 2) Убедись, что метод toDemical(String) возвращает 0, если на вход получает пустую строку или null.
package com.javarush.task.pro.task09.task0906;
import java.util.Arrays;
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) {
if (decimalNumber <= 0) {
return null;
}
int remainder = 0;
String binaryRepresentation = "";
while (decimalNumber != 0) {
remainder = decimalNumber % 2;
binaryRepresentation = (remainder) + binaryRepresentation;
decimalNumber /= 2;
}
return String.valueOf(binaryRepresentation);
}
public static int toDecimal(String binaryNumber) {
if (binaryNumber.equals(null)){
return 0;
}
int decimalNumber = 0;
for (int i = 0; i < binaryNumber.length(); i++){
decimalNumber += binaryNumber.length() * Math.pow(2,i);
}
return decimalNumber;
}
}