【发布时间】:2021-09-12 05:52:16
【问题描述】:
要添加 a 和 b,首先添加它们最右边的位。这给 a0 + b0 = c0 ⋅ 2 + s0, 其中 s0 是 a + b 的二进制扩展中的最右边位,而 c0 是进位,即 0 或 1。 然后将下一对位和进位相加,a1 +b1 +c0 =c1 ⋅2+s1,
因为我们只是将进位 C0 与下一个操作相加,而不乘以 2 ????为什么?还是我错了?
提前致谢
【问题讨论】:
-
在二进制中,下一个数字已经是前一个数字的两倍,所以不需要乘以 2
-
这里
c1 ⋅2+s1表示“写为位c1后跟位s1的2位数字”,就像十进制一样,a*10 + b表示“写为数字的2位数字a 后跟数字 b"。例如,十进制数 63 可以写为6*10+3。在加法算法中,左位或左位数将成为进位。
标签: algorithm binary addition discrete-mathematics