无符号整数上的Java位移位

无符号整数上的Java位移位,java,int,bit-shift,unsigned,Java,Int,Bit Shift,Unsigned,我知道java没有unsigned int,但是在JavaSE8中,有一些方法使用integer数据类型来执行unsigned算术。如何在java中将位移位到“unsigned int”?所有按位操作的方式与对signedint进行按位操作的方式相同,使用>向右移位。“无符号”特性仅用于输出和转换,不影响内部位表示 例如: int i = Integer.MAX_VALUE / 1024 - 1023; System.out.println(Integer.toUnsignedString(i)

我知道java没有unsigned int,但是在JavaSE8中,有一些方法使用integer数据类型来执行unsigned算术。如何在java中将位移位到“unsigned int”?

所有按位操作的方式与对signed
int
进行按位操作的方式相同,使用
>
向右移位。“无符号”特性仅用于输出和转换,不影响内部位表示

例如:

int i = Integer.MAX_VALUE / 1024 - 1023;
System.out.println(Integer.toUnsignedString(i) + "=" + Integer.toBinaryString(i));
i = i >>> 10;
System.out.println(Integer.toUnsignedString(i) + "=" + Integer.toBinaryString(i));
i = i << 21;
System.out.println(Integer.toUnsignedString(i) + "=" + Integer.toBinaryString(i));

若要进行无符号移位,请使用
>>
2096128=111111111110000000000                // 11 ones, 10 zeros
2047=11111111111                             // 11 ones, 0 zeros
4292870144=11111111111000000000000000000000  // 11 ones, 21 zeros