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

lsmd5eda  于 2023-05-21  发布在  Java
关注(0)|答案(5)|浏览(175)

我有一个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);

但这并没有给予出转换后的正确值。有人能帮忙吗。

q8l4jmvw

q8l4jmvw1#

你该换衣服了

BigInteger toHex=new BigInteger(dec,16);

BigInteger toHex=new BigInteger(dec,10);
                                     ^

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

9nvpjoqh

9nvpjoqh2#

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);
yx2lnoni

yx2lnoni3#

我想我明白问题所在了

BigInteger toHex=new BigInteger(dec,16);

您正在将键入的数字转换为以16为基数的整数。在这里尝试使用10

eyh26e7m

eyh26e7m4#

使用

BigInteger toHex=new BigInteger(dec,10);
1tuwyuhd

1tuwyuhd5#

有一个相同的问题:我有一个这样的BigInteger值:

BigDecimal price = BigDecimal.valueOf(1151234).movePointRight(16);

我想把价格转换为十六进制,我只是写这个代码。然后它输出我所期望的:

System.out.println("0x" + price.toBigInteger().toString(16));
    //expect 0x27015cfcb0230820000
    //output 0x27015cfcb0230820000

相关问题