[英]Internal working of greater than/ less than
我只是想知道大于/小于计算结果如何,并返回到高级语言。
我在这里寻找硬件门模型。
让我们用一个统一的例子来解释,比如5> 3。
它通常通过带进位检测的减法来实现。
从门控的角度来看,减去二进制数是通过从每个操作数通过减法器传递匹配的位对来执行的:
+-----+
carry_in -->| |
| |--> a_minus_b
a -->| SUB |
| |--> carry_out
b -->| |
+-----+
a_minus_b = carry_in ⊕ a ⊕ b
carry_out = (carry_in ∧ b) ∨ (¬a ∧ (carry_in ∨ b))
参数a
和b
位0通过第一个减法器传递,其中carry_in为0.每个参数的位1通过第二个减法器,其中carry_in设置为bit-0阶段的carry_out。 这继续沿着链继续,直到最后的最后一个carry_out设置CPU的进位标志,如果a <b则保持1,否则为0。
此外,每个a_minus_b都被“或”在一起并被否定,结果进入CPU的零标志,表示a = b。
这些标志可以通过机器指令进行测试,机器指令在编写if (a < b) { ... }
时由编译器生成。
我将留下5> 3作为读者的练习。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.