CPU是怎么计算机 2+3的

假设x = 2, y = 3;  x + y = ?;  从CPU的角度,他是怎样计算的呢

第1步:把2和3进行异或操作  得到结果 0001存放到某处

  0010
^ 0011
  -----------
  0001

第2步:再把2和3进行与操作 得到结果 0010

  0010
& 0011
  -----
  0010

 再把0010左移1位得到0100, 判断移位后的结果是否为0, 如果为为,则前边异或所得的结果就是最终结果,如果不为0

则把前边异或得得结果,和后边与运算并左移一位的结果 再次执行异或操作


第3步:把0001和0100进行异或 得到结果0101

  0001
^ 0100
  -----
  0101

第4步 再把0001和0100进行一次与运算

  0001
& 0100
  -----
  0000

得到结果为0000, 0000 << 1 结果仍为0, 所以2+3所得最终结果为0101 转成10进制为5


那么2 - 3呢?

2转换成2进制为 0010

-3转换成2进制为1101

1

  0010
^ 1101
  -----
  1111

2

  0010
& 1101
  -----
  0000

0000 << 1  结果还为0, 所以最终结果为1111作为有符号数,1111转换成10进制就是-1   结果正确


结论:说明计算机会把我们人类所熟知的各种运算,转换成不同的位运算, 我们所会的加减乘除他都是不会的。但都通过位运算的变形来实现

感谢计算机科学家和数学家们所做出的努力。让我们得以享受今年信息技术的果实。既然成为不了计算机科学家,那就让我们站在他们的肩膀

上吧!





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值