66.不用加减乘除做加法

拈花ヽ惹草 提交于 2020-03-05 07:49:04

额。。这道题,确实我不会,,,对于位运算,我有点不熟。

跟着一个题解慢慢了解位运算把。二进制运算规则和十进制是差不多的,只不过十进制遇10进位,而二进制遇2进位,并且二进制进位后保留的余数是0.

 

二进制的计算是这样的:

1.计算不进位的和,也就是用异或来进行计算^   (异或也就是对应位的数不同则为1,相同则为0)

2.计算进位,也就是先求与&,在左移一位

3.计算a+b,也就是a^b+(a&b)<<1,这个视乎又出现了加号,又要进行这一步,即最后要等到b为0时才结束运算。所以也就得出了循环结束条企鹅,并且每次都将进位的结果给了b,不进位的结果给了a

 

代码如下:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!