自己写:一位多路选择器

只用 &、|、^ 这几个位运算(相当于只用门),补全一位的 MUX:sel 为 0 送 a,为 1 送 b。

开始练习 →

自己写:半加器

补全 half_adder:返回(本位, 进位)两个值。每一行按「本位 + 进位」拼成两个字符。

开始练习 →

全加器有几个输入

全加器比半加器多了一个输入口。它的三个输入是【0】。

开始练习 →

进位输出什么时候是 1

全加器的进位输出为 1 的条件是【0】。

开始练习 →

用半加器搭全加器要几个

用半加器来搭一个全加器,需要【0】。

开始练习 →

全加器的完整真值表

运行下面这段程序,填写它打印出来的结果。 def half_adder(a, b): return a ^ b, a & b def full_adder(a, b, cin): s1, c1 = half_add

开始练习 →

自己写:用两个半加器搭全加器

补全 full_adder:先把 a、b 半加一次,再把结果和 cin 半加一次,两次的进位用或合起来。

开始练习 →

自己写:把八位串起来

补全 ripple_add:从最低位开始,一位一位调 full_adder,把每一位的进位接到下一位去。返回八位的和(高位在前)。

开始练习 →

进位到底在哪几位上产生

把上一题的加法器改成同时交出三样:八位的和、最高位送出去的那个进位、以及每一位的进位(低位在前)。

开始练习 →

和 Python 的加号对一遍账

用四组数,把自己搭的加法器和 Python 的 +(截成八位)逐一对比,再打出最后一组的和。

开始练习 →