如何在Java中将BigInteger值转换为Hex

Jur*_*y A 15 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);
Run Code Online (Sandbox Code Playgroud)

但转换后这并没有给我正确的值.任何人都可以帮忙.

aio*_*obe 12

你应该改变

BigInteger toHex=new BigInteger(dec,16);
Run Code Online (Sandbox Code Playgroud)

BigInteger toHex=new BigInteger(dec,10);
                                     ^
Run Code Online (Sandbox Code Playgroud)

目前,您要求用户输入dec值,然后将输入解释为十六进制值.(这就是输出与输入相同的原因.)


小智 5

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);
Run Code Online (Sandbox Code Playgroud)