Как преобразовать значение BigInteger в Hex в Java
У меня есть номер BigInteger, и мне нужно преобразовать его в шестнадцатеричный. Я попробовал следующее:
String dec = null;
System.out.println("Enter the value in Dec: ");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
dec = br.readLine();
BigInteger toHex=new BigInteger(dec,16);
String s=toHex.toString(16);
System.out.println("The value in Hex is: "+ s);
Но это не дает мне правильного значения после преобразования. Может кто-нибудь помочь.
Ответы
Ответ 1
Вы должны изменить
BigInteger toHex=new BigInteger(dec,16);
к
BigInteger toHex=new BigInteger(dec,10);
^
В настоящее время вы запрашиваете у пользователя значение dec, а затем интерпретируете ввод как шестнадцатеричное значение. (Поэтому вывод идентичен входу.)
Ответ 2
Я думаю, что вижу проблему:
BigInteger toHex=new BigInteger(dec,16);
Вы преобразовываете число, которое вы вводите, в целое число с использованием базы 16. Попробуйте использовать 10
здесь.
Ответ 3
использование
BigInteger toHex=new BigInteger(dec,10);
Ответ 4
String hexValue = "FFF";
System.out.println("HexaDecimal Value :"+hexValue);
BigInteger bigint = new BigInteger(hexValue ,16);
System.out.println("Big Int Value :"+bigint);
BigInteger s = new BigInteger("4");
bigint = bigint.add(s);
System.out.println("After Addition :"+bigint);
String hexNewValue = bigint.toString(16);
System.out.println("HexaDecimal Value after Addition :"+hexNewValue);