В чем проблема?
package en.javarush.task.pro.task09.task0908;
/*
Binary to hexadecimal converter
*/
import java.util.Arrays;
import java.util.HashMap;
public class Solution {
private static final String HEX = "0123456789abcdef";
public static void main(String[] args) {
String binaryNumber = "100111010000";
System.out.println("Binary number " + binaryNumber + " is equal to hexadecimal number " + toHex(binaryNumber));
String hexNumber = "d2f";
System.out.println("Hexadecimal number " + hexNumber + " is equal to binary number " + toBinary(hexNumber));
}
public static String toHex(String binaryNumber) {
// Проверка входного параметра. Входной параметр должен быть кратным 4
if (binaryNumber == "" || binaryNumber == null)
return "";
else {
while (binaryNumber.length() % 4 != 0) {
binaryNumber = "0" + binaryNumber;
}
// преобраование строки в массив символов
char[] binaryNumberArray = binaryNumber.toCharArray();
String hexNumber = "";
// делаем выборку из четырех символов
for (int i = 0; i < binaryNumberArray.length / 4; i++) {
int decimalNumber = 0;
char[] binarySmall = Arrays.copyOfRange(binaryNumberArray, i * 4, i * 4 + 4);
for (int j = 0; j < binarySmall.length; j++) {
String x = binarySmall[j] + "";
int res = Integer.parseInt(x);
decimalNumber = decimalNumber + (int) (res * Math.pow(2, binarySmall.length - 1 - j));
}
char hex = HEX.charAt(decimalNumber);
String hexstr = hex + "";
hexNumber = hexNumber + hexstr;
}
return hexNumber;
}
}
public static String toBinary(String hexNumber) {
String binaryNumber = "";
if (hexNumber == "" || hexNumber == null) {
return "";
}
else {
int[] hexNumberArray = new int[hexNumber.length()];
for (int i = 0; i < hexNumber.length(); i++) {
hexNumberArray[i] = HEX.indexOf(hexNumber.charAt(i));
}
for (int i = 0; i < hexNumberArray.length; i++) {
int decimalNumber = hexNumberArray[i];
String binarySmall = "";
while (decimalNumber > 0) {
int remainder = decimalNumber % 2;
binarySmall = remainder + binarySmall;
decimalNumber = decimalNumber / 2;
}
while (binarySmall.length() < 4) {
binarySmall = "0" + binarySmall;
}
binaryNumber = binaryNumber + binarySmall;
}
return binaryNumber;
}
}
}