目录
1.题目
在不使用加法的情况下,计算俩个数的和,并输出。
2.思路解析
不使用加法,我们容易想到的是使用唯一操作符,来进行计算。
我们按照二进制位进行计算,需要进位的和不需要进位的分开计算;
不需要进位的:两个数相对的位置, 有一个1填1,其余填0,所以用^操作符;
需要进位的:两个数对应位置,两个数都为1填1,所以用&操作符;
让需要进位的数和不需要进位的数相加的出结果,直到需要进位的数为0;
3.代码
不使用加法,用位操作符来计算和 · 6a7dc7f · 风夏/C语言进阶 - Gitee.com
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int num1 = 0;
int num2 = 0;
scanf("%d %d", &num1, &num2);
int tmp = 0;
//计算加法的过程,
//把需要进位的和不需要进位的分开计算;
//计算不需要进位的,有1填1,无1填0;
//需要进位的记录下来,下次加上
while (num2)
{
tmp = num1 ^ num2;
num2 = (num1 & num2) << 1;
num1 = tmp;
}
printf("%d\n", num1);
return 0;
}
4.总结
希望大家多多点赞与关注!
你的点赞是我的动力!