yangzi52177的专栏

1.问题描述

写一个函数,求两个整数之和,要求函数体内不得使用加减乘除运算符。(来自《剑指offer》)

2.分析

我们分析做十进制加法时,可以分为三步进行例如 5+17 , 1)各位相加不进位 5+7 = 12 , 2)第二步做进位 5+7有进位 进位的值是10 ,3)把前面两个结果加起来 12+10的结果是22 ,,对于二进制同样也遵循这个规律。

3.代码

int add(int num1,int num2){int sum = 0;int carry = 0;do{sum = num2 ^ num1;carry = (num1 & num2) << 1;num1 = sum;num2 = carry;}while (num2 != 0);return sum;}

只有一条路不能选择——那就是放弃的路;

yangzi52177的专栏

相关文章:

你感兴趣的文章:

标签云: