什麼是算術位移

有號整數右移時,將符號位元複製到空出的高位位元的方式。將負數右移1位元,會得到除以2後向較小方向捨去的值。填入0的是邏輯位移。

日文名稱: 算術シフト

「算術位移」出現在1領域的1道練習題中(電腦算術等)。

這個名詞所屬的領域: 電腦算術

練習算術位移的題目

將8位元有號整數 −8(1111 1000)以算術右移向右移1位元的結果為下列何者?

  1. A124(0111 1100)
  2. B−16(1111 0000)
  3. C−4(1111 1100)
查看答案與解析

正確答案:C. −4(1111 1100)

在算術位移(算術右移)中,空出來的最高位元會複製符號位元,因此 1111 1000 會變成 1111 1100,以二補數而言就是 −4。即使是負數,向右移1位元也會成為除以2的值。若是在最高位填入0的邏輯右移,則會成為 0111 1100 = 124,符號就改變了。−16則是向左移1位元的結果。另須注意,在C語言中將有號整數右移時會是哪一種,過去是交由編譯系統(實作)決定的。

解析中的「算術位移」

出現「算術位移」的題目(1題)

  1. 將8位元有號整數 −8(1111 1000)以算術右移向右移1位元的結果為下列何者?

相關名詞

二補數 布斯演算法(Booth's algorithm) 先行進位加法器 有效位數損失(Catastrophic cancellation) 有效數(Significand) 定點數 非正規化數 指數欄位 捨入至最接近偶數 華里士樹(Wallace tree)

前往名詞解釋列表