Java,C 位移運算符 有符號右移>>與無符號右移>>>


我的博客 地址:https://www.wenhaofan.com/a/20181029232749

有符號右移

     正數有符號右移

        首先計算4>>2spa

        將4轉爲二進制
orm

        0000 0100get

        右移兩位,符號位爲0,因此高位置0得博客

        0000 0001
it

        轉二進制得 1
二進制

        因此 4>>2 =1
個人博客

        

     負數有符號右移

        再來計算-4>>2 
co

        首先咱們須要取得-4的補碼 補碼爲反碼+1
ps

        反碼爲正碼按位取反
tar

        由正碼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

相關文章
相關標籤/搜索