计算机底层的加法运算

基础

在正式开始前,我们要了解基础知识(知道的可以跳过)。
这里只出示我们后面要用的知识。

位与

位与运算符是单个与符号。如果两个位都是1,结果为1,否则结果0。

位异或

如果两个运算位相同,则结果为0,否则为1。

简单模式

举例:
5 + 6
5转化成二进制为0000 0101
6转化成二进制为0000 0110

第一步

0000 0101
0000 0110
——————
0000 0011
进行位异或运算。

第二步

0000 0101
0000 0110
——————
0000 0100
进行位与运算。这个运算用于检测是否要进位。
结果不为0,需要进位。

第三步

0000 0100 -> 0000 1000
对1进行左进位。

第四步

0000 0011
0000 1000
——————
0000 1011
对异或结果及处理后的与运算结果进行异或运算。类似第一步。

第五步

0000 0011
0000 1000
——————
0000 0000
对异或结果及处理后的与运算结果进行与运算。用于检测是否有进位。
类似第二步。结果为0,不需要进位。

答案

第四步的结果:0000 1011,即为11。

困难模式

举例:
51 + 69
51转化成二进制为0011 0011
69转化成二进制为0100 0101

第一步

0011 0011
0100 0101
——————
0111 0110
进行位异或运算。

第二步

0011 0011
0100 0101
——————
0000 0001
进行位与运算。结果不为0,需要进位。

第三步

0000 0001 -> 0000 0010
对1进行左进位。

第四步

0111 0110
0000 0010
——————
0111 0100
对异或结果及处理后的与运算结果进行异或运算。

第五步

0111 0110
0000 0010
——————
0000 0010
对异或结果及与运算结果进行与运算。用于检测是否有进位。
类似第二步。结果不为0,需要进位。

第六步

0000 0010 -> 0000 0100
对1进行左进位。类似第三步。

第七步

0111 0100
0000 0100
——————
0111 0000
对异或结果及处理后的与运算结果进行异或运算。类似第四步。

第八步

0111 0100
0000 0100
——————
0000 0100
对异或结果及与运算结果进行与运算。用于检测是否有进位。
类似第五步。结果不为0,需要进位。

看到这里,有些人的心态就崩了:嘈!这是什么东西,这么麻烦,到现在都还有进位!!!
列位,没事,安抚一下情绪,继续吧!

第九步

0000 0100 -> 0000 1000
对1进行左进位。类似第六步。

第十步

0111 0000
0000 1000
——————
0111 1000
对异或结果及处理后的与运算结果进行异或运算。类似第七步。

第十一步

0111 0000
0000 1000
——————
0000 0000
对异或结果及与运算结果进行与运算。用于检测是否有进位。
类似第五步。结果为0,不需要进位。

啊——终于结束了,上答案吧。

答案

第四步的结果:0111 1000,即为120。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值