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 == "" || binaryNumber == null) { return null; } else { if (binaryNumber.matches("^[01]+$")) { while (binaryNumber.length() % 4 != 0) { binaryNumber = "0" + binaryNumber; } String strhexnum = ""; int hexnum = 0; int numsymhex = binaryNumber.length() / 4; for (int j = 0, h = 0; h < numsymhex; j = j + 4, h++) { for (int i = 0; i < 4; i++) { int numsymbin = binaryNumber.length() - 1 - i - j; int tempnum = Character.getNumericValue(binaryNumber.charAt(numsymbin)); hexnum = (int) (hexnum + tempnum * Math.pow(2, j + i)); } hexnum = (int) (hexnum / Math.pow(16, h)); if (hexnum <= 9) { strhexnum = hexnum + strhexnum; } else if (hexnum == 10) { strhexnum = "a" + strhexnum; } else if (hexnum == 11) { strhexnum = "b" + strhexnum; } else if (hexnum == 12) { strhexnum = "c" + strhexnum; } else if (hexnum == 13) { strhexnum = "d" + strhexnum; } else if (hexnum == 14) { strhexnum = "e" + strhexnum; } else if (hexnum == 15) { strhexnum = "f" + strhexnum; } else return "ошибка"; } return strhexnum; } else return null; } } public static String toBinary(String hexNumber) { String binnum = ""; if (hexNumber == null) { return null; } for (int i = 0; i < hexNumber.length(); i++) { if (hexNumber.charAt(hexNumber.length() - 1 - i) == '0') { binnum = "0000"+ binnum; } else if (hexNumber.charAt(hexNumber.length() - 1 - i) == '1') { binnum = "0001"+ binnum; } else if (hexNumber.charAt(hexNumber.length() - 1 - i) == '2') { binnum = "0010"+ binnum; } else if (hexNumber.charAt(hexNumber.length() - 1 - i) == '3') { binnum = "0011"+ binnum; } else if (hexNumber.charAt(hexNumber.length() - 1 - i) == '4') { binnum = "0100"+ binnum; } else if (hexNumber.charAt(hexNumber.length() - 1 - i) == '5') { binnum = "0101"+ binnum; } else if (hexNumber.charAt(hexNumber.length() - 1 - i) == '6') { binnum = "0110"+ binnum; } else if (hexNumber.charAt(hexNumber.length() - 1 - i) == '7') { binnum = "0111" + binnum; } else if (hexNumber.charAt(hexNumber.length() - 1 - i) == '8') { binnum = "1000"+ binnum; } else if (hexNumber.charAt(hexNumber.length() - 1 - i) == '9') { binnum = "1001"+ binnum; } else if (hexNumber.charAt(hexNumber.length() - 1 - i) == 'a') { binnum = "1010"+ binnum; } else if (hexNumber.charAt(hexNumber.length() - 1 - i) == 'b') { binnum = "1011"+ binnum; } else if (hexNumber.charAt(hexNumber.length() - 1 - i) == 'c') { binnum = "1100"+ binnum; } else if (hexNumber.charAt(hexNumber.length() - 1 - i) == 'd') { binnum = "1101"+ binnum; } else if (hexNumber.charAt(hexNumber.length() - 1 - i) == 'e') { binnum = "1110"+ binnum; } else if (hexNumber.charAt(hexNumber.length() - 1 - i) == 'f') { binnum = "1111"+ binnum; } else return null; }return binnum; } }