如何仅使用AND,OR,NAND,NOR,XOR等执行二进制数学运算+, - ,*,/和%?
我根本不了解二进制文件,我只知道操作在最基本的意义上做了什么以及如何计算到n。
答案 0 :(得分:0)
这是一个广泛的主题。我给你二进制加法的答案(最简单的部分)
添加分为细胞。每个单元执行一位的添加。它与其他单元连接以处理进出。因此,每个单元有三个输入和两个输出:
<强>输入强>
<强>输出强>
您可以为单元格设置真值表:
A B Ci X Co
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
这为您提供了以下公式:
请注意,您可以优化这些布尔表达式。
您可以使用相同的方案进行减法(借用而不是随身携带)。乘法和除法更难。据我所知,经常使用查找表。
三个连接的小区
A2 B2 A1 B1 A0 B0
| | | | | |
| | | | | |
------ ------ ------
--Co| |Ci--Co| |Ci--Co| |Ci-- 0 (fixed)
| ------ ------ ------
| | | |
X3 X2 X1 X0