专栏:https://blog.csdn.net/2301_79293429/category_12545690.html
给定两个十进制整数 :?A,B
你需要把它们的二进制形式以十进制的运算法则相加输出结果。
例如:
A=3,B=2的时候,A 的二进制表示是 : 11?,?B 的二进制表示是 10?,你需要输出答案为 :?21
一行两个十进制整数:?A,B
一行一个整数,表示相加的结果。
示例1
2 3
21
示例2
5 4
201
对于?100?% 的数据: 1<=A,B<=32768
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>
#include<string.h>
#define ll long long
//可能要考虑 正负(涉及到位运算都要考虑) 的情况
/*该题范围:1<=A,B<=32768,所以不需考虑负数的情况*/
int main()
{
int a, b;
scanf("%d%d", &a, &b);
ll sum=0,m=1;
/*注意开long long*/
while (a||b)
{
int a2 = a & 1, b2 = b & 1;
sum += (a2 + b2)*m;
m *= 10;
a >>= 1;/**/
b >>= 1;/**/
}
printf("%lld\n", sum);
return 0;
}
恭喜你今天又进步了一点点啦~