添加 8 位带符号大小的二进制数 - 二进制算术

add the 8-bit signed magnitude binary numbers - binary arithmetic

我正在尝试添加 8 位有符号量级数:10111000 + 00010111

  0   1 1 0 0 0 0 0        carry

  1   0 1 1 1 0 0 0        (-56)
+ 0   0 0 1 0 1 1 1      + (+23)
____________________     ________
      1 0 0 1 1 1 1   !=   (-33)

我知道最高有效位 (MSB) 是符号位,不应添加。但是,我没有得到 (-33) 作为二进制答案,而且似乎也没有溢出。我不确定我的做法是否正确。请帮忙。

不幸的是,符号幅度表示中的加法并不像普通补码表示那样直接。对于符号大小,您需要根据符号组合选择正确的操作。如果你有等号,你只需添加幅度。如果符号不相等,则用较大的减去较小的,并保留较大的符号。所以,在你的情况下:

  0 0 0 1 1 1 0        borrow

  0 1 1 1 0 0 0        (56)
- 0 0 1 0 1 1 1      - (23)
____________________ ________
  0 1 0 0 0 0 1   ==   (33)

取较大幅度的符号 (56) 得到最终数字 1 0 1 0 0 0 0 1