左移<<
運算子
將x
向左位移若干個位,放棄x
中經移位後會超出結果型別範圍的那些高序位,將其餘的位向左位移,將空出來的低序位均設定為零。
右移》 運算子
將x
向右位移若干個位
當x
為int
或long
型別時,放棄x
的低序位,將剩餘的位向右位移,如果x
非負,則將高序空位位置設定為零,如果x
為負,則將其設定為 1。
當x
為uint
或ulong
型別時,放棄x
的低序位,將剩餘的位向右位移,並將高序空位位置設定為零。
下面分別舉正數左移,右移,負數左移,右移例子。
例子(1):11>>2
11的二進位制:0000 1011
>>2 :0000 0010
結果 :2
例子(2):11<<2
11的二進位制:0000 1011
<<2 :0010 1100
結果 :44
例子(3):-11>>2,取-11絕對值的二進位制
11二進位制:0000 1011
按位取反 :1111 0100
+1=補碼:1111 0101
>>2 :1111 1101
按位取反:0000 0010
+1=原碼:0000 0011
加上原本符號位=-3
例子(4):-11<<2,取-11絕對值的二進位制
11二進位制:0000 1011
按位取反:1111 0100
+1=補碼:1111 0101
<<2 :1101 0100
按位取反:0010 1011
+1=原碼:0010 1100
加上原本符號位結果:-44
總結
左移i>>count:也就是i / 2的count次方,再向下取整
例:11>>2=11/4=2
-11>>2=-11/4=-3
右移i<
例子:11<<2=11x4=44
-11<<2=-11x4=-44
C 位移運算
隨筆 218 文章 1 一 和 運算子用於執行移位運算,分別稱為左移位運算子和右移位運算子。對於x n形式的運算,含義是將x向左或向右移動n位,得到的結果的型別與x相同。此處,x的型別只能是int,uint long或ulong,n的型別只能是int,n的型別只能是int,或者顯示轉換為這些型別之一...
C 位移運算
一 和 運算子用於執行移位運算,分別稱為左移位運算子和右移位運算子。對於x n形式的運算,含義是將x向左或向右移動n位,得到的結果的型別與x相同。此處,x的型別只能是int,uint long或ulong,n的型別只能是int,n的型別只能是int,或者顯示轉換為這些型別之一,否則變異程式時會出現錯...
c 位移運算子
左移運算子 將第乙個運算元向左移動第二個運算元指定的位數,空出的位置補0。例如 1100100 2 110010000,1100100左移兩位後為 1100100口口,補0後為110010000。右移運算子 將第乙個運算元向右移動第二個運算元所指定的位數,空出的位置補0。例如 1100100 2 0...