C++ 淺析移位運算


按位左移(<<):

  按二進制形式把所有的數字向左移動對應的位數,高位移出(舍棄),低位的空位補零

按位右移(>>):

  按二進制形式把所有的數字向右移動對應位移位數,低位移出(舍棄),高位的空位補符號位,即正數補零,負數補1

 

簡單舉個例子【右移>>】:

int number = 500;

number = number >> 1;

 

十進制      二進制

(500)10  <===>(1 1 1 1 1 0 1 0 0)2

右移兩位:

二進制       十進制

(1 1 1 1 1 0 1)2 <====>(125)10

低位舍棄2位

 

同理【左移動<<】

十進制      二進制

(500)10  <===>(1 1 1 1 1 0 1 0 0)2

左邊移兩位:

二進制       十進制

(1 1 1 1 1 0 1 0 0 0 0)2 <====>(2000)10

低位舍棄2位

 

注意需要考慮溢出的問題。此處不做深究。


免責聲明!

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



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