移位操作符

下面以數(shù)17為例展示一下對正負17進行移位后的結(jié)果

正數(shù)17機器碼表示為

0000 0000 0000 0000 0000 0000 0001 0001

負數(shù)17機器碼表示為(原碼求反再加1)

1111 1111 1111 1111 1111 1111 1110 1111

左移操作符<<

定義:左移操作符規(guī)定將操作符左邊的數(shù)向左移動n位(低位補0)

求17<<2的值

1,17左移兩位后二進制為 0000 0000 0000 0000 0000 0000 0100 0100 
2,轉(zhuǎn)化為十進制為68(十進制)
3,17<<2 = 68

求-17<<2的值

1,-17左移兩位后二進制為1111 1111 1111 1111 1111 1111 1011 1100
2,轉(zhuǎn)成對應(yīng)原碼是      1000 0000 0000 0000 0000 0000 0100 0100
3,轉(zhuǎn)換為十進制為 -68
4,-17<<2 = -68

右移操作符>>

定義:右移位操作符按照操作符右側(cè)指定的位數(shù)移動n位,對于正數(shù)來說在高位插入0,對于負數(shù)的話在高位插入1

求17>>2的值

1,17右移兩位后二進制為 0000 0000 0000 0000 0000 0000 0000 0100
2,轉(zhuǎn)化為十進制為4
3,17>>2 = 4

求-17>>2的值

1,-17右移兩位后二進制為 1111 1111 1111 1111 1111 1111 1111 1011
2,轉(zhuǎn)化為原碼為 1000 0000 0000 0000 0000 0000 0000 0101
3,十進制表示為 -5

右移操作符>>>

定義:右移位操作符按照操作符右側(cè)指定的位數(shù)移動n位,但無論正負都在高位補0

求17>>>2的值

1,17右移兩位后二進制為 0000 0000 0000 0000 0000 0000 0000 0100
2,轉(zhuǎn)化為十進制為4
3,17>>2 = 4

求-17>>>2的值

1,右移后為 0011 1111 1111 1111 1111 1111 1011 1100
2,轉(zhuǎn)化為十進制為1073741819
3,-17>>>2 = 1073741819
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 左移位操作符 << 按照操作符右側(cè)指定的位數(shù)將操作符左邊的操作數(shù)向左移動,低位補0 為什么轉(zhuǎn)二進制后會是32個1...
    心揚閱讀 814評論 0 1
  • <<和>>都是移位操作符用于位操作,須知這倆操作符都是二元操作符,右邊的是移動的位數(shù),對于左移而言,它移了幾位就相...
    Stroman閱讀 532評論 0 0
  • 1、左移運算(<<)## 在右邊補0,數(shù)字變大 2、右移運算(>>)## 在左邊補0,數(shù)字變小 3、無符號右移運算...
    這很重要嗎閱讀 1,990評論 0 0
  • 高級運算符 文檔地址 作為 基本運算符 的補充,Swift 提供了幾個高級運算符執(zhí)行對數(shù)傳值進行更加復(fù)雜的操作。這...
    hrscy閱讀 913評論 0 2
  • 我是一名熱衷于函數(shù)式編程的Clojurian(Clojure粉),網(wǎng)絡(luò)ID是lambeta(λβ),讀作/‘l?m...
    lambeta閱讀 2,805評論 0 18

友情鏈接更多精彩內(nèi)容