【剑指offer】位运算之不用加减乘除做加法

版权声明: https://blog.csdn.net/spaceman_c/article/details/82083805

题目:求两个整数之和,要求在函数体内不得使用+,-,*,/四则运算符号

分析
比如38+87=125,计算分为三步
第一步:只做各位相加不进位,得到结果是15;
第二步:做进位,8+7有进位,进位为10;3+8有进位,进位为100;
第三步:将前两步的结果加起来15+10+100刚好还125;
二进制中5的二进制是101,17的二进制是10001
第一步:各位相加不进位,得到结果10100;
第二步:做进位,进位为10;
第三部:前两步相加,10100+10=10110;
所以这个方法对二进制也是适用的
这里写图片描述

所以相加前面两步的结果,直到步产生进位
代码如下:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/spaceman_c/article/details/82083805
今日推荐