помогите понять почему?(
package com.javarush.task.pro.task09.task0908;
/*
Двоично-шестнадцатеричный конвертер
*/
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) {
return "";
}
int size=binaryNumber.length();
for (int i = 0; i < size; i++) {
char inde=binaryNumber.charAt(i);
if (inde!='1'&& inde!='0') {
return "";
}
}
while (size%4!=0){
binaryNumber=0+binaryNumber;
}
String[] table = {"0000", "0001",
"0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111"};
String[] tables = {"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"};
String dec="";
for (int j=0;j<size;j=j+4){
String bof = String.valueOf(binaryNumber.charAt(j));
String bof2 =String.valueOf(binaryNumber.charAt(j+1));
String bof3 =String.valueOf(binaryNumber.charAt(j+2));
String bof4 =String.valueOf(binaryNumber.charAt(j+3));
String res = bof + bof2+bof3+bof4;
for (int i = 1; i < 17; i++) {
if (res.equals(table[i-1])) {
dec = dec + tables[i - 1];
}
}
//напишите тут ваш код
}
return dec;
}
public static String toBinary(String hexNumber) {
if (hexNumber==null) {
return "";
}
String[] table = {"0000", "0001",
"0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111"};
String[] tables = {"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"};
int size = hexNumber.length();
String dec="";
for (int i = 0; i < size; i++) {
String inde=String.valueOf(hexNumber.charAt(i));
for (int j = 1; j < 17; j++) {
if (inde.equals(tables[j-1])) {
dec = dec + table[j - 1];
}
}
//напишите тут ваш код
}
return dec;
}
}