在Java中声明无符号int

有没有在Java中声明无符号int的方法

或者,这个问题也可以这样表述:
无符号的Java等价物是什么

我只是想告诉您我所看到的Java实现String.hashcode()。我想测试一下,如果整数是32个无符号整数,是否会发生冲突。

Java没有无符号整数

您可以定义一个long代替int

您还可以将有符号整数当作无符号整数使用。two的补码表示法是指对于有符号整数和无符号整数,大多数操作(如加法、减法、乘法和左移位)在二进制级别上是相同的。然而,一些操作(分割、右移、比较和铸造)是不同的。从JavaSE8开始,Integer类允许您充分使用int数据类型要执行无符号算术

在JavaSE8及更高版本中,可以使用int数据类型表示无符号32位整数,其最小值为0,最大值为2^32-1。使用Integer类将int数据类型用作无符号整数。静态方法,如compareUnsigneddivideUnsigned等已添加到Integer类中,以支持无符号整数的算术运算

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

发表评论