Подтвердить что ты не робот

Как преобразовать значение 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);

Но это не дает мне правильного значения после преобразования. Может кто-нибудь помочь.

4b9b3361

Ответ 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);