1. 程式人生 > >C語言邏輯移位與算術移位

C語言邏輯移位與算術移位

邏輯移位與算術移位

符號位參與移位

1. 左移

邏輯左移和算術左移一致,都是高位移出,低位補0
注:算術左移可能會導致負數移位成整數,如
1011 1111 1111 1111 (-16385)
左移一位後,變為
0111 1111 1111 1110 (32766)
除了發生此種情況外,算術右移可實現:右移n位實現乘以2^(-n)的功能。

2. 右移

(1)算術右移
高位補符號位,低位移出
(2)邏輯右移
高位補0,低位移出