import java.lang.Math; import java.util.*; public class Main { private final static String HEX = "0123456789abcdef"; public static void main(String[] args) { System.out.println(toHex("100111010000")); System.out.println(toBinary("9d0")); } public static String toHex(String binaryNumber) { int decimalNumber = binaryToDecimal(binaryNumber); String hex = ""; while(decimalNumber != 0){ hex = HEX.charAt(decimalNumber%16) + hex; decimalNumber = decimalNumber / 16; } return hex; } private static int binaryToDecimal(String binaryNum) { if(binaryNum == null || binaryNum.length() == 0) return 0; int decimal = 0; for(int i = binaryNum.length()-1, b = 0; i >=0; i--,b++){ int value = Character.getNumericValue(binaryNum.charAt(b)); decimal = decimal + value*(int)Math.pow(2,i); } return decimal; } public static String toBinary(String hex){ int binary = 0; for (int i = 0; i < hex.length(); i++) { binary = 16 * binary + HEX.indexOf(hex.charAt(i)); } return ""+binary; } }