概述
//way1
int add1(int num1,int num2)
{
if (num2== 0)
return num1;
int a = num1^num2;
int b = (num1&&num2 )>> 1;
return
add1(a, b);
}
//way2
int add2(int num1, int num2)
{
int sum = 0;
int carry=0;
do{
sum = num1^num2;//不考虑进位对每一位相加,这和异或的结果是一样的
carry = (num1&&num2) >> 1;//考虑进位,只有1+1时才产生进位(1+0,0+0均不产生进位,
//进位可以转换成两个二进制相与的结果),右移一位,继续看进位情况
num1 = sum;
num2 = carry;
//重复以上的步骤
} while (num2 != 0);
return num1;
}
最后
以上就是潇洒跳跳糖为你收集整理的不用加减乘除写一个加法函数(位运算)的全部内容,希望文章能够帮你解决不用加减乘除写一个加法函数(位运算)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复