【面试题47】不用加减乘除做加法
2016-09-01 19:45
295 查看
题目描述
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。/**
* 例:14+7
1 1 1 0
+ 0 1 1 1
------------------------------------------------------
①不计进位相加(即异或运算): 1 0 0 1
②考虑进位(因为有进位的时候都是1,
所以结果为1代表该位运算有进位,与运算: 0 1 1 0
之后要左移一位):
③两个值相加
*/
public class Solution {
public int Add(int num1,int num2) {
int sum=0;
int carry=0;
//表示没有进位;因为第①②步相加的时候依然可能产生进位
while(num2!=0){
sum =num1 ^ num2;
carry=(num1 & num2)<<1;
num1=sum;
num2=carry;
}
return num1;
}
}
相关文章推荐
- 面试题47:不用加减乘除做加法
- 剑指offer——面试题47:不用加减乘除做加法
- (剑指Offer)面试题47:不用加减乘除做加法
- 【剑指Offer】面试题47:不用加减乘除做加法
- 剑指Offer面试题47不用加减乘除做加法(位运算),面试题48不能被继承的类(final)
- 剑指offer——面试题:47不用加减乘除做加法
- 面试题47:不用加减乘除做加法
- 【剑指Offer学习】【面试题47:不用加减乘除做加法】
- 剑指offer 面试题47 不用加减乘除做加法
- 面试题47—不用加减乘除做加法
- 面试题47-不用加减乘除做加法
- 剑指offer--面试题47:不用加减乘除做加法
- 面试题47:不用加减乘除做加法
- 面试题47-不用加减乘除做加法
- 剑指offer——面试题47:不用加减乘除做加法
- 剑指Offer面试题47:不用加减乘除做加法 Java实现
- 面试题47:不用加减乘除做加法
- 剑指offer——面试题47:不用加减乘除做加法
- 【剑指offer】6.5发散思维能力——面试题47:不用加减乘除做加法
- 面试题47 不用加减乘除做加法