小编典典

在 Java 中声明一个 unsigned int

all

有没有办法在 Java 中声明一个 unsigned int?

或者问题也可以这样表述:Java 中的 unsigned 等价物是什么?

只是为了告诉你我正在查看 Java 的String.hashcode(). 如果整数是 32 unsigned int,我想测试碰撞的可能性。


阅读 111

收藏
2022-03-28

共1个答案

小编典典

Java
没有无符号整数的数据类型。

如果您需要存储较大的值,您可以定义
along而不是a。int

您也可以像使用无符号整数一样使用有符号整数。二进制补码表示的好处是大多数操作(例如加法、减法、乘法和左移)在二进制级别上对于有符号和无符号整数都是相同的。然而,一些操作(除法、右移、比较和强制转换)是不同的。从
Java SE 8
开始,Integer类中的新方法允许您充分使用int数据类型来执行无符号算术

在 Java SE 8 及更高版本中,您可以使用 int 数据类型来表示一个无符号的 32 位整数,其最小值为 0,最大值为 2^32-1。使用
Integer 类将 int 数据类型用作无符号整数。Integer 类中添加了
等静态方法compareUnsigned,以支持无符号整数的算术运算。divideUnsigned

请注意,int变量在声明时仍然是有符号的,但现在可以通过在Integer类中使用这些方法来进行无符号运算。

2022-03-28