文章

CPU的真正运算过程(2+3=?)

滴水的教材其实很不错的,这里心甘情愿为其打一波广告
话说2+3=5是因为咱们从小接受的教育,条件反射或者说逻辑运算的结果,可是计算机只认识0和1,那么他是如何运算的呢?
2在二进制中为0010,3在二进制中是0011,你以为计算机是0010+0011?
哈哈,我也才知道,计算机的计算过程其实是很复杂的,速度之快让人乍舌.
假设,拿出CPU的两个容器
X:0010
Y:0011
注意啦,计算机CPU的运算开始啦.

1.首先,CPU进行"异或运算"(不晓得就搜索啦)
0010
0011
xor--------------
0001
与或运算的结果是0001,那么CPU自己再拿一个容器R
R:0001
存放刚才的结果
2.然后CPU再次进行"与"运算
0010
0011
&--------
0010
结果为0010
注意啦,这里开始发送未来时光弹!!!!
CPU将会把本次"与"运算的结果进行左移一位.
0010 << 1 ==0100
注意:如果本次运算结果为0000,也就是0,那么CPU认定"R"即是结果,如果不是,那么CPU开始痛苦的进行下一步
如果本次并非结果
CPU将把第一次运算的结果放入X
X:0001
之前的值CPU不要了.
它还把第二步左移之后的值放入Y
Y:0100

现在来看:
X:0001
Y:0100
接下来

0001
0100
xor------
0101

好了,结果是0101
存入R
R:0101
继续判断

0001
0100
&------
0000
好,这里看明白了,你左移一位还是0
0000 << 1 == 0000
当CPU发现这个值左移一位是0的时候
R就是结果了
R是什么来看看
R是0101
转换为十进制,就是5

补一句:"这TM哪个人才发明的"

原文来自:CPU的真正运算过程(2+3=?),尊重自己,尊重每一个人;转发请注明来源!
1 0

发表评论