左移運算和右移運算

2022-05-02 18:18:12 字數 1024 閱讀 5172

左移就是把所有位向左移動幾位

如:   12 << 2    意思就是12向左移動兩位

12的二進位制是: 0000 1100

通過這個圖我們可以看出來,所有的位全都向左移動兩位,然後把右邊空的兩個位用0補上,最左邊多出的兩個位去掉,最後得到的結果就是00110000  結果就是48

我們用同樣的辦法算 12<<3  結果是 96

8<<4  結果是  128

由此我們得出乙個快速的演算法    m << n   其實可以這麼算   m << n  = m * 2n

這個跟左移運算大體是一樣的

例: 12 >> 2

我們可以看出來右移和左移其實是一樣的,但是還是有點不同的,不同點在於對於正數和負數補位的時候補的不一樣,負數補1,正數補0

如我們再做乙個 –8 的    -8>>2

這裡總結一下,關於負數或者正數來說,移位的時候是一樣的,但是在補位的時候,如果最高位是0就補0,如果最高位是1就補1

由此我們得出乙個快速的演算法    m >> n   其實可以這麼算   m >> n  = m / 2^n

左移右移等位運算

左移操作 規則 右邊空出的位用0填補 高位左移溢位則捨棄該高位。計算機中常用補碼表示資料 資料 127,補碼和原碼一樣 0111 1111。左移一位 1111 1110 這個補碼對應的原碼為 1000 0010 對應十進位制 2 左移二位 1111 1100 這個補碼對應的原碼為 1000 0100...

java 左移 右移運算

左移運算子,num 1 相當於num乘以2 右移運算子,num 1 相當於num除以2 比如num是40 10進製 對應的二進位制為 101000 2的5次方x1 2的4次方x4 2的3次方x1 2的2次方x0 2的1次方x0 2的0次方x0 二進位制轉換為十進位制方法原始方法 左移一位 左移一位是...

C 位運算之 左移運算和右移運算

在c中,位運算包含兩種移位運算 左移運算 右移運算 左右位移運算,在數值為無符號和有符號情況下具有不同行為。有符號左右位移運算 include include include signed int左移 void si left shift signed int si,int n signed int...