左移和右移N位等同于無溢出檢查的2的N次冪運算:2**N
<<左移
運算規則:
按二進制形式把所有的數字向左移動對應的位數,高位移出(舍棄),低位的空位補零。
語法格式:
需要移位的數字<<移位的位數
例如:3<<2則是將數字3左移動2位
計算過程:
3<<2首先把3轉換為二進制數字00000000000000000000000000000011
然后把該數字高位(左側)的兩個零移出,其他的數字都朝左平移2位,最后在低位(右側)
的連個空位補零。則得到的結果是00000000000000000000000000001100,
則轉換為十進制是12
數學意義:
在數學沒有溢出的前提下,對于正數和負數,左移以為都相當于乘以2的1次方,左移n位,就相當于乘以2的n次方。
>>右移
運算規則:
按二進制形式把所有的數字向右移動對應的位數,低位移出(舍棄),高位的空位補符號位
即正數補0,負數補1
語法規則:
需要移位的數字>>移位的次數
例如:11>>2則是將數字11右移2位
計算過程:
11的二進制形式為:00000000000000000000000000001011然后把低位的最
后兩個數字移出,因為該數字是正數,所以在高位補0,則得到的最終的二進制結果為:
00000000000000000000000000000010轉換為十進制數為3
數學意義:
右移一位相當于除以2,右移n位相當于除以2的n次方,這里取的是商,不要余數。