左移運算子(
<<)
左移運算子是用來將乙個數的各二進位制位左移若干位,移動的位數由右運算元指定(右運算元必須是非負
值),其右邊空出的位用
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填補。注 不同的環境填補方式可能不同 低位右移溢位則...