添加8位带符号幅度的二进制数-二进制算术

问题描述 投票:0回答:1

我正在尝试添加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)作为二进制答案,而且似乎也没有溢出。我不确定我是否做对了。请帮助。

math binary cpu-architecture data-representation
1个回答
0
投票

不幸的是,符号幅度表示法中的加法不像普通补码表示法那样简单。对于符号幅度,您需要根据符号组合选择正确的操作。如果符号相等,则只需将幅度相加即可。如果符号不相等,则从较大的符号中减去较小的符号,并保留较大幅度的符号。因此,在您的情况下:

  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

© www.soinside.com 2019 - 2024. All rights reserved.