计算机只认识 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
计算机只会做加法。
本文作者:a
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!