自己写:一位多路选择器
只用 &、|、^ 这几个位运算(相当于只用门),补全一位的 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 的 +(截成八位)逐一对比,再打出最后一组的和。
开始练习 →