C 位移運算

2022-02-27 04:31:10 字數 1288 閱讀 5498

左移<<運算子

x向左位移若干個位,放棄x中經移位後會超出結果型別範圍的那些高序位,將其餘的位向左位移,將空出來的低序位均設定為零。

右移》 運算子

x向右位移若干個位

xintlong型別時,放棄x的低序位,將剩餘的位向右位移,如果x非負,則將高序空位位置設定為零,如果x為負,則將其設定為 1。

xuintulong型別時,放棄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...