網上看到:無符號右移的規則只記住一點:忽略了符號位擴展,0補最高位 無符號右移運算符>>> 只是對32位和64位的值有意義。
對“無符號右移運算符>>> 只是對32位和64位的值有意義”一開始不理解,其實寫一下代碼就明白了,對byte, short都是有符號右移,並且java會將移位操作的結果轉換爲int型(不是先將byte轉換爲int,否則就是無符號右移了)。
<<運算符要注意溢出的問題。
PS1:在java中直接輸入的數字是int型的。
PS2:一個很有用的觀察函數Integer.toBinaryString(int)。