我有一个十六进制字符串 240300000800000000000000004。我想在这个十六进制代码中添加整数并在 java 中取回十六进制代码。
由于java不支持这种muck长度的值,那么我们该怎么做呢?
谢谢阿布舍克
我有一个十六进制字符串 240300000800000000000000004。我想在这个十六进制代码中添加整数并在 java 中取回十六进制代码。
由于java不支持这种muck长度的值,那么我们该怎么做呢?
谢谢阿布舍克
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
最简单的解决方案是已经发布的使用 BigInteger 的解决方案。但是,您也可以分块处理加法,以便结果和任何进位都适合 long。从带入零的右手端开始。取一组最多 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);