ребят мой код не проходит проверку хотя все работает. Если кто то найдет ошибку буду благодарен.
package com.javarush.task.pro.task09.task0908;
/*
Двоично-шестнадцатеричный конвертер
*/
import java.io.StreamTokenizer;
import java.util.*;
public class Solution {
private static final String HEX = "0123456789abcdef";
private static final String ABCD = "abcdef";
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) {
String doomy;
int toDoom;
String toDecimal = "";
for (int i = 0; i < binaryNumber.length(); i++) {
if (binaryNumber.charAt(i) - 48 > 1)
return "";
}
while(binaryNumber.length() % 4 != 0) {
binaryNumber = "0" + binaryNumber;
}
for (int i = 0; i < binaryNumber.length()/4; i++) {
doomy = binaryNumber.substring(4 * i, 4 * i + 4);
toDoom = 0;
toDoom = Character.getNumericValue(doomy.charAt(0)) * 8 + Character.getNumericValue(doomy.charAt(1)) * 4 +
Character.getNumericValue(doomy.charAt(2)) * 2 + Character.getNumericValue(doomy.charAt(3)) * 1;
if (toDoom > 9)
toDecimal += HEX.substring(toDoom, toDoom + 1);
else
toDecimal += String.valueOf(toDoom);
}
binaryNumber = toDecimal;
//напишите тут ваш код
return binaryNumber;
}
public static String toBinary(String hexNumber) {
String Binary = "";
String temp = "";
int Decimal;
for (int i = 0; i < hexNumber.length(); i++) {
if (hexNumber.charAt(i) < 48 || hexNumber.charAt(i) > 57 &&
hexNumber.charAt(i) < 97 || hexNumber.charAt(i) > 102)
return "";
}
for (int j = 0; j < hexNumber.length(); j++) {
if (hexNumber.charAt(j) > 96){
Decimal = (int) Math.pow(16, 0) * hexNumber.charAt(j) - 87;
while (Decimal != 0) {
temp += String.valueOf(Decimal % 2);
Decimal = Decimal / 2;
}
for (int i = temp.length(); i > 0; i--) {
Binary += temp.substring(i - 1, i);
}
} else {
Decimal = (int) Math.pow(16,0) * hexNumber.charAt(j) - 48;
temp = " ";
while (temp.length() % 5 != 0) {
Binary += String.valueOf(Decimal % 2);
Decimal = Decimal / 2;
temp = temp + Decimal;
}
temp = "";
}
}
hexNumber = Binary;
//напишите тут ваш код
return hexNumber;
}
}