共计 644 个字符,预计需要花费 2 分钟才能阅读完成。
计算机只认识 0 和 1,不懂数学的加减乘除(计算机只会与、或、非、异或),是不会直接运算的,那计算机是怎么操作的?
加法
比如计算 4 + 5 = ?
# 计算机是不会直接加的
0000 0100
+ 0000 0101
-----------
0000 1001
# 计算机实现原理
# 第一步:异或(不考虑进位)0000 0100
0000 0101
-----------
0000 0001
# 第二步:与运算(判断进位,如果与运算结果为 0,则没有进位)0000 0100
0000 0101
-----------
0000 0100
# 第三步:将与运算结果,左移一位
0000 1000
# 第四步:和第一步结果,异或
0000 0001
0000 1000
-----------
0000 1001
# 第五步:对第四步进行与运算(判断进位,如果与运算结果为 0,则没有进位)0000 0001
0000 1000
-----------
0000 0000
# 最终结果就是与运算为 0 的结果的上一个异或运算
减法
4 – 5 = ?
# 4 + (-5) = -1
0000 0100
+ 1111 1011
-----------
1111 1111
# 计算机实现原理
# 第一步:异或(不考虑进位)0000 0100
1111 1011
-----------
1111 1111
# 第二步:与运算(判断进位,如果与运算结果为 0,则没有进位)0000 0100
1111 1011
-----------
0000 0000
# 最终结果:1111 1111 即 -1
乘除
乘:x*y,就是 y 个 x 相加,还是加法
除:x/y,本质是减法,即 x 能减去多少个 y
计算机只会做加法。
正文完