网上看到:无符号右移的规则只记住一点:忽略了符号位扩展,0补最高位 无符号右移运算符>>> 只是对32位和64位的值有意义。
对“无符号右移运算符>>> 只是对32位和64位的值有意义”一开始不理解,其实写一下代码就明白了,对byte, short都是有符号右移,并且java会将移位操作的结果转换为int型(不是先将byte转换为int,否则就是无符号右移了)。
<<运算符要注意溢出的问题。
PS1:在java中直接输入的数字是int型的。
PS2:一个很有用的观察函数Integer.toBinaryString(int)。