不用加减乘除做加法

来源:互联网 发布:linux 修改cfg文件 编辑:程序博客网 时间:2024/05/21 10:25

写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。

分析:肯定用位运算,模拟加法时首先将各位相加不进位,然后再算进位,最后相加。例如5+17=22,首先各位相加得到12,然后算进位得到10,再相加得到22.

各位相加不进位用异或计算,算进位先用与运算,再左移一位,然后重复直到没有进位。

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


0 0
原创粉丝点击