Не проходят первые 2 условия задачи
package com.javarush.task.pro.task09.task0908;
import java.util.regex.Pattern;
/*
Двоично-шестнадцатеричный конвертер
*/
public class Solution {
public static void main(String[] args) {
String binaryNumber = "100111010000";
System.out.println("Двоичное число " + binaryNumber + " равно шестнадцатеричному числу " + toHex(binaryNumber));
String hexNumber = "9d0";
System.out.println("Шестнадцатеричное число " + hexNumber + " равно двоичному числу " + toBinary(hexNumber));
}
public static String toHex(String binaryNumber) {
if(binaryNumber == null || binaryNumber == ""){
return "";
}
int decimalNum = 0;
for (int i = 0; i < binaryNumber.length(); i++) {
int index = binaryNumber.length() - 1 - i;
int value = Character.getNumericValue(binaryNumber.charAt(index));
decimalNum += value * Math.pow(2,i);
}
char[] hexDigits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
if (decimalNum == 0){
return "0";
}
StringBuilder hexadecimal = new StringBuilder();
while (decimalNum != 0){
int remainder = decimalNum % 16;
hexadecimal.insert(0,hexDigits[remainder]);
decimalNum /= 16;
}
return hexadecimal.toString();
}
public static String toBinary(String hexNumber) {
int decimalnum = 0;
String HEX = "0123456789abcdef";
for (int i = 0; i < hexNumber.length(); i++) {
decimalnum = decimalnum * 16 + HEX.indexOf(hexNumber.charAt(i));
}
String b = "";
while (decimalnum != 0){
b = decimalnum % 2 + b;
decimalnum = decimalnum /2;
}
return String.valueOf(b);
}
}