有没有办法在 Java 中声明一个 unsigned int?
或者问题也可以这样表述:Java 中的 unsigned 等价物是什么?
只是为了告诉你我正在查看 Java 的String.hashcode(). 如果整数是 32 unsigned int,我想测试碰撞的可能性。
String.hashcode()
Java 没有无符号整数的数据类型。
如果您需要存储较大的值,您可以定义 along而不是a。int
long
int
您也可以像使用无符号整数一样使用有符号整数。二进制补码表示的好处是大多数操作(例如加法、减法、乘法和左移)在二进制级别上对于有符号和无符号整数都是相同的。然而,一些操作(除法、右移、比较和强制转换)是不同的。从 Java SE 8 开始,Integer类中的新方法允许您充分使用int数据类型来执行无符号算术:
Integer
在 Java SE 8 及更高版本中,您可以使用 int 数据类型来表示一个无符号的 32 位整数,其最小值为 0,最大值为 2^32-1。使用 Integer 类将 int 数据类型用作无符号整数。Integer 类中添加了 等静态方法compareUnsigned,以支持无符号整数的算术运算。divideUnsigned
compareUnsigned
divideUnsigned
请注意,int变量在声明时仍然是有符号的,但现在可以通过在Integer类中使用这些方法来进行无符号运算。