java - java中大的负十六进制值转换为long

标签 java string hex long-integer

结果应该是负值,但实际上是正值。

我该如何解决这个问题?

谢谢!!

BigInteger b = new BigInteger("80000000000000004308000000000000", 16);

System.out.println("长值:"+b.longValue());

--> 长值:4830110600354856960

最佳答案

http://download.oracle.com/javase/1,5,0/docs/api/java/math/BigInteger.html#longValue%28%29

请参阅上页了解为什么它不会为负数。它返回低 64 位,因此最后 64 位必须高于 Long.MAX_VALUE 才会产生负值。

关于java - java中大的负十六进制值转换为long,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7585538/

相关文章:

Python函数将二进制数字转换为十六进制数字

java - Arraylist 不断抛出 IndexOutOfBounds

java - 在二叉树java中递归创建叶子列表

c - 将输入读入数组会导致分段违规

python - 如何在 Python 中舍入十六进制值

python - 如何在 python 中将 [0x01, 0xFF,.....] 作为字符串 '' 01 FF ....' 返回

java - 未处理来自 AJAX 调用的 GET 或 POST 请求

java - Java 中的 SparkContext 并行化调用示例

c++ - 为什么当我使用 std::string::operator[] 时 auto 变量不会成为引用?

excel - 使用替换功能将一个字符替换为两个