CPU 是怎么做加法运算?
先异或,然后与,然后左移,然后判断第三步结果是非为0,为0,结果就是第一次运算的结果,不为0,那么两数变为第一和第三的结果重新第一次运算
例如:CPU 怎么计算2+3=?
2 转换二进制数: 0010
3 转换二进制数: 0011
-
第一步:先进行异或^运算,并保存结果
2^3 = 0010^0011= 0001 -
第二步:要相加的两个数改为与‘&’运算,并保存结果
2&3 = 0010&0011=0010 -
第三步:第二步的结果进行<<左移1位运算,并保存结果
0010<<1 = 0100 -
第四步:判断第三步的结果是否等于0如果等于0第一步计算所得就是结果
如果不相等又从第一步从新开始,并把计算的数改为上一次第一步和第三步运算的结果。
所以...(下面的步骤是重复的)
-
第五步:先进行异或^运算,并保存结果
0001^0100= 0101 -
第六步:要相加的两个数改为与‘&’运算,并保存结果
0001&0100=0000 -
第七步:第二步的结果进行<<左移1位运算,并保存结果
0000<<1 = 0000 -
第八步:判断第三步的结果是否等于0
结果是等于0所以计算所得结果就是0101
得到结果为0101,0101转换为十进制为5,所以2+3=5