左移運算和右移運算


1) 左移運算(<<)

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

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

          12的二進制是: 0000 1100

 

 

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

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

                            8<<4  結果是  128

  由此我們得出一個快速的算法    M << n   其實可以這么算   M << n  = M * 2n

 

2) 右移運算符(>>)

 

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

     例: 12 >> 2

 

 

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

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

 

 

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

由此我們得出一個快速的算法    M >> n   其實可以這么算   M >> n  = M / 2^n


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM