計算機組成原理筆記——移位運算,補碼加減法及溢出現象

❤️ 移位運算

移位規則:符號位不變, 因爲負數移位之後還是負數, 不可能因爲一個移位就變成正數了

移位運算分爲 邏輯移位 和 算數移位

算數移位(針對有符號數)

在這裏插入圖片描述
例題 :
1. 如 [X]原 = 0,1101,左移一位爲0,1010 右移一位爲 0,0110(空位補0)
2. 如 [X]原 = 1,1101,左移一位爲1,1010 右移一位爲 1,0110(空位補0)
3. 如 [X]反 = 1,1101,左移一位爲1,1011 右移一位爲 1,1110(空位補1)
4. 如 [X]補 = 1,1101,左移一位爲1,1010 右移一位爲 1,1110(左移空位補0, 右移空位補1)

l邏輯移位(針對無符號數)

不論左移右移,空位補0

❤️ 補碼加減法(連同符號位一起相加減)

  • 加法的基本公式爲:

    整數 [A]補+[B]補=[A+B]補 (mod 2^(n+1) )

    小數 [A]補+[B]補=[A+B]補 (mod 2)

  • 加法的基本公式爲:

    整數 [A-B]補=[A]補+[ - B]補 (mod 2^(n+1) )

    小數 [A-B]補=[A]補+[ - B]補 (mod 2)

  • 額外補充:
    [X]原=[ [X]補 ]補

mod解釋::對於上面那個 mod 是不是有很多問號哈,那個就是比如你兩個數相加的時候符號位變成了兩個,這時是負還是正呢,所以呢就是要比如整數相加的mod 2^(n+1) ),把n+1那位給去掉(n爲代碼長度),如果剛好沒有這一位那就不用去掉了(PS:不理解沒關係,你就記住符號位就一位,)

例題1:
在這裏插入圖片描述
例題2:
在這裏插入圖片描述
❤️ 溢出現象

如例題1,上面那種超出機器字長的現象叫做溢出現象

溢出的原則是:符號位由於進位變成兩個符號位,如果兩個符號位不同則表示溢出,如果相同表示沒有溢出

符號位 是否溢出
00 結果爲正,無溢出
01 正溢,(大於機器所能表示的最大正數)
10 負溢,(小於機器所能表示的最小負數)
11 結果爲負,無溢出

❤️ 習題

1.兩補碼相加,採用1位符號位,則當()時,表示結果溢出
A、最高位有進位
B、最高位進位和次高位進位異或結果爲0
C、最高位爲1
D、最高位進位和次高位進位異或結果爲1
我的答案:D
2.在補碼的加減法中,用兩位符號位判斷溢出,兩符號位爲10時,表示()
A、結果爲正數,無溢出
B、結果正溢出
C、結果負溢出
D、結果爲負數,無溢出
我的答案:C
3.如果x爲負數,由[x]補求[-x]補是( )
A、[x]補各位保持不變
B、[x]補符號位變反,其他各位不變
C、[x]補除符號位外,各位變反,末位加1
D、[x]補連同符號位一起各位變反,末位加1
我的答案:D
4.在定點二進制運算中,減法運算一般通過( )來實現。
A、原碼運算的二進制減法器
B、補碼運算的二進制減法器
C、補碼運算的十進制加法器
D、補碼運算的二進制加法器
我的答案:D
5.原碼定點整數0101 0101左移2位後的值爲()
A、0100 0111
B、0101 0100
C、0100 0110
D、0101 0101
我的答案:B

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章