C語言之左移和右移運算子

2021-07-05 06:24:39 字數 662 閱讀 8284

左移運算子(

<<)

左移運算子是用來將乙個數的各二進位制位左移若干位,移動的位數由右運算元指定(右運算元必須是非負

值),其右邊空出的位用

0填補,高位左移溢位則捨棄該高位。

右移運算子(

>>)

右移運算子是用來將乙個數的各二進位制位右移若干位,移動的位數由右運算元指定(右運算元必須是非負值),移到右端的低位被捨棄,對於無符號數,高位補0

。對於有符號數,某些機器將對左邊空出的部分

用符號位填補(即「

算術移位

」),而另一些機器則對左邊空出的部分用

0填補(即

「邏輯移位

」)。注意:對無符號數,

右移時左邊高位移入

0;對於有符號的值

,如果原來符號位為0(該數為正),則左邊也是移入0

。如果符號位原來為

1(即負數),則左邊移入0還是1,

要取決於所用的計算機系統。有的系統移入

0,有的系統移入1

。移入0

的稱為「

邏輯移位

」,即簡單移位;移入

1的稱為

「算術移位」。

%d和%u

有符號的十進位制輸出用%d,無符號的十進位制輸出用%u,對於long型的資料分別表示為%ld和%lu

C語言之左移和右移運算子

左移運算子是用來將乙個數的各二進位制位左移若干位,移動的位數由右運算元指定 右運算元必須是非負值 其右邊空出的位用0填補,高位左移溢位則捨棄該高位。右移運算子是用來將乙個數的各二進位制位右移若干位,移動的位數由右運算元指定 右運算元必須是非負值 移到右端的低位被捨棄,對於無符號數,高位補0。對於有符...

C語言之左移和右移運算子

c語言中的左移和右移運算子移位後的結果老是忘記,最近在刷有關位操作的題目,正好整理下 1.左移運算子 左移運算子是用來將乙個數的各二進位制位左移若干位,移動的位數由右運算元指定 右運算元必須是非負值 其右邊空出的位用0填補,高位左移溢位則捨棄該高位。2.右移運算子 右移運算子是用來將乙個數的各二進位...

左移運算子和右移運算子

左移操作 規則 右邊空出的位用0填補 高位左移溢位則捨棄該高位。例如 10 的二進位制為 0000 1010 那麼10左移3為就是 0101 0000,結果就是80.10 3 80 右移操作 規則 左邊空出的位用0或者1填補。正數用0填補,負數用1填補。注 不同的環境填補方式可能不同 低位右移溢位則...