無符號右移( >>> )


我們知道在Javaint類型占32位,可以表示一個正數,也可以表示一個負數。正數換算成二進制后的最高位為0,負數的二進制最高1

 

例如  -5換算成二進制后為:

 

1111 1111 1111 1111 1111 1111 1111 1011

對其進行無符號右移2位:

 

 

 

 

移位過程講解:

-5換算成二進制: 1111 1111 1111 1111 1111 1111 1111 1011

-5右移3位后結果為-1-1的二進制為:  1111 1111 1111 1111 1111 1111 1111 1111   // (1進行補位)

-5無符號右移3位后的結果 536870911 換算成二進制:  0001 1111 1111 1111 1111 1111 1111 1111

 

通過其結果轉換成二進制后,我們可以發現,正數右移,高位用0補,負數右移,高位用1補,當負數使用無符號右移時,用0進行部位(自然而然的,就由負數變成了正數了)

 

注意:這里說的是右移,高位補位的情況。正數或者負數左移,低位都是用0補。(自行測試)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM