首页 > 解决方案 > 2个二进制补码二进制数之和

问题描述

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

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

以下是我的尝试,但我进退两难,我应该

(1)舍弃进位,然后加两个0,所以答案是00001100,也就是十进制的12 在此处输入图像描述

谢谢 !

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

在此处输入图像描述

标签: mathbinaryadditiontwos-complement

解决方案


对于 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 位)......


推荐阅读