结果应该是负值,但实际上是正值。
我该如何解决这个问题?
谢谢!!
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/