個人博客 地址:https://www.wenhaofan.com/a/20181029232749
有符號右移
正數有符號右移
首先計算4>>2
將4轉為二進制
0000 0100
右移兩位,符號位為0,所以高位置0得
0000 0001
轉二進制得 1
所以 4>>2 =1
負數有符號右移
再來計算-4>>2
首先我們需要取得-4的補碼 補碼為反碼+1
反碼為正碼按位取反
由正碼0000 0100 取反得
1111 1011
再+1得
1111 1100
右移兩位,符號位為1,所以高位置1得
1111 1111
此時減一得補碼
1111 1110
補碼轉正碼得
0000 0001
十進制為1,加負號得
-1
無符號右移
正數無符號右移
6>>>2
正數無符號右移
取6的二進制
0000 0000 0000 0000 0000 0000 0000 0110
右移2位,最高位置0
0000 0000 0000 0000 0000 0000 0000 0001
轉為10進制得
1
負數無符號右移
-6 >>>2
先得6的二進制
0000 0000 0000 0000 0000 0000 0000 0110
按位取反,得反碼
1111 1111 1111 1111 1111 1111 1111 1001
反碼+1得補碼
1111 1111 1111 1111 1111 1111 1111 1010
右移,高位置0得
0011 1111 1111 1111 1111 1111 1111 1110
轉10進制得
1073741822