【发布时间】:2014-12-10 10:33:04
【问题描述】:
我想将4294967295 分配给一个变量 (2^32-1)
很明显,Integer 做不到,Long 可以做到。
但是,我注意到 Java 8 提供了无符号整数(至少是一些方法)。
有人知道Integer.parseUnsignedInt() 的方法吗?
当我输入"4294967295" 并打印变量时,它的输出为-1
(-2 代表 4294967294,-3 代表 4294967293 等等......)
有没有办法让我仍然可以在变量中包含4294967295?
我错过了什么吗?
a=Integer.parseUnsignedInt("4294967295");
System.out.println(a);
这将输出为-1,但我期望4294967295。
【问题讨论】:
-
向我们展示您创建 unsigned int 的代码
-
不要把它看成一个十进制数把它看成一系列位,你是把一个无符号数变成有符号类型,如果你知道这个数的位表示是什么那么你知道你为什么得到 -2 或其他什么,然后将其解析为无符号以得到你期望的小数