在java中添加27个字符的十六进制字符串中的整数



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

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

谢谢Abhishek

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

在Java 中使用BigInteger

这将满足您的要求。

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

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

BigInteger b = new BigInteger("FF", 16);
BigInteger bPlus1 = b.plus(1);
String hex = bPlus1.toString(16); // 0x100
BigInteger bigint = new BigInteger("240300000800000000000000004" ,16);
    System.out.println(bigint);
    BigInteger s = new BigInteger("8");
    bigint = bigint.add(s);
    System.out.println(bigint);

最新更新