题目:如5的二进制是101,17的二进制10001。还是试着把计算分成三步:第一步各位相加但不计进位,得到的结果是10100(最后一位两个数都是1,相加的结果是二进制的10。这一步不计进位,因此结果仍然是0);第二步记下进位。在这个例子中只在最后一位相加时产生一个进位,结果是二进制的10;第三步把前两步的结果相加,得到的结果是10110,正好是22。由此可见三步走的策略对二进制也是管用的
<span style="font-family: 宋体; ">#include <iostream></span>using namespace std;
int Add(int num1,int num2)
{
if (num2==0)
{
return num1;
}
int sum=num1^num2;
int theone=(num1&num2)<<1;
int result=0;
result=Add(sum,theone);
return result;
}
int main()
{
int a=7;
int b=15;
int sum=0;
sum=Add(a,b);
cout<<sum<<endl;
return 0;
}
本文介绍了一种实现二进制加法的算法,通过不考虑进位的按位相加、记录进位并最终将这两部分结果相加来完成整个加法过程。这种方法适用于计算机科学中的二进制运算。

被折叠的 条评论
为什么被折叠?



