【发布时间】:2011-11-26 23:37:32
【问题描述】:
结果应该是负值,但它是正值。
我该如何解决这个问题?
谢谢!!
BigInteger b = new BigInteger("80000000000000004308000000000000", 16);
System.out.println("长值:"+b.longValue());
--> 长值:4830110600354856960
【问题讨论】:
-
看不懂,为什么要负数?
-
@Nican 他的号码实际上以 4 开头,并且确实适合长。我认为开头的 8 是尝试使用二进制补码来表示符号。
-
@JeffFerland BigNumber 构造函数指定如果一个数字是负数,你必须把可选的“-”号放在前面。
-
@Nican 我在下面的回答中详细说明了该收缩器问题。只是对提问者期望负值的原因进行理论分析。
标签: java string hex long-integer