【问题标题】:Sum of 2 two's complement binary number2个二进制补码二进制数之和
【发布时间】:2021-12-22 09:35:55
【问题描述】:

4位加法时我熟悉二进制补码,然后当我面对下面的问题时我很困惑

**在8位输出中求2个补码二进制数010111和110101之和**

以下是我的尝试,但我进退两难,我应该这样做吗

(1)舍弃进位,再加两个0,所以答案是00001100,即十进制的12

谢谢!

(2) 只是在开头加1,所以答案是11001100,也就是十进制的204

【问题讨论】:

  • 最后我把它设为 00010111 + 11110101 = 00001100,我想它可能是正确的
  • 什么是十进制的23 + 53
  • @beaker 应该是 23 + (-9) = 12,用二进制补码表示
  • 好的,这是个大问题。它说 8 位输出,但原始数字是 8 位还是 6 位?第二个数字是 12 还是 53?在我看来,第二个数字应该是 00110101,但我不是可以为您澄清这一点的人。
  • 原来的数字是6位的,应该提一下,不好意思

标签: math binary addition twos-complement


【解决方案1】:

对于 8 位二进制补码,您必须反转数字的所有 8 位

据我所知,补码和补码对绝对值进行运算,因此:

二进制数 010111 用 00010111 表示为 8 位

C_1(00010111) = 00010111 xor 11111111 = 11101000

C_2(00010111) = C_1 + 1 = 00010111 + 1 = 00011000

二进制数 110101 用 8 位表示 -> 00110101

C_1(00110101) = 00110101 xor 11111111 = 11001010

C_2(00010111) = C_1 + 1 = 11001010 + 1 = 11001011

现在添加两个补码:

C_2(00010111) + C_2(00010111) = 00011000 + 11001011 = 11100011

如果用符号位搞砸了,请纠正我(我只是将二进制数按 8 位表示)...

【讨论】:

  • 如果你的数字是有符号的,你必须忽略第一位,然后对剩余的 5 in 8 表示进行 2s 补码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-18
  • 2017-02-13
  • 2015-04-12
  • 1970-01-01
  • 1970-01-01
  • 2012-09-21
  • 2012-11-23
相关资源
最近更新 更多