按位左移(<<):
按二進制形式把所有的數字向左移動對應的位數,高位移出(舍棄),低位的空位補零
按位右移(>>):
按二進制形式把所有的數字向右移動對應位移位數,低位移出(舍棄),高位的空位補符號位,即正數補零,負數補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位
注意需要考慮溢出的問題。此處不做深究。