2

我有一个十六进制字符串 240300000800000000000000004。我想在这个十六进制代码中添加整数并在 java 中取回十六进制代码。

由于java不支持这种muck长度的值,那么我们该怎么做呢?

谢谢阿布舍克

4

5 回答 5

7
String str = "240300000800000000000000004";
BigInteger bi = new BigInteger(str, 16);
Integer ii = 10; // Integer to add
bi = bi.add(new BigInteger(ii.toString()));
System.out.println(bi.toString(16)); // 24030000080000000000000000e
于 2013-07-19T10:17:18.350 回答
7

BigInteger在 Java 中使用

这将满足您的要求。

访问以下教程以学习Java 中的 BigInteger:TutorialPoint

于 2013-07-19T10:03:33.770 回答
3

最简单的解决方案是已经发布的使用 BigInteger 的解决方案。但是,您也可以分块处理加法,以便结果和任何进位都适合 long。从带入零的右手端开始。取一组最多 15 个十六进制数字,转换为长整数,进行加法,包括从该块右侧加法中的任何进位,将结果的 15 个最低有效数字存储到输出字符串中,并记住最多有效数字用作此加法的进位,进位到左侧的下一个加法。

于 2013-07-19T10:18:09.130 回答
1
BigInteger b = new BigInteger("FF", 16);
BigInteger bPlus1 = b.plus(1);
String hex = bPlus1.toString(16); // 0x100
于 2013-07-19T10:19:51.590 回答
0
BigInteger bigint = new BigInteger("240300000800000000000000004" ,16);
    System.out.println(bigint);
    BigInteger s = new BigInteger("8");
    bigint = bigint.add(s);
    System.out.println(bigint);
于 2013-07-19T10:45:29.937 回答