Input
The input contains several test cases, please process to the end of the file.Each case consists of two hexadecimal integers A and B in a line seperated by a blank.The length of A and B is less than 15.
输入包含多个测试用例,请处理到文件的末尾。每个情况由两个十六进制整数 A 和 B 组成,在一行中由空格分开。A 和 B 的长度小于 15。
Output
For each test case,print the sum of A and B in hexadecimal in one line.
对于每个测试用例,将十六进制的 A 和 B 之和打印在一行中。
Sample Input
+A -A
+1A 12
1A -9
-1A -12
1A -AA
Sample Output
0
2C
11
-2C
-90
思路:
两个十六进制数使用%llx输入并相加,若为和负数,则需要输出它的反,并在前面添加负号。(注:16进制数长度小于15位,所以换算成2进制位的话小于64(16*4)位,需用长整形%llx。)
代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
long long a,b,s;//16进制数长度小于15位,所以换算成2进制位的话小于64(16*4)位,需用长整形。
while(scanf("%llX%llX",&a,&b)!=EOF)
{
s=a+b;
if(s<0) //若为负数,则输出-s,添加负号
printf("-%llX\n",-s);
else
printf("%llX\n",s);
}
return 0;
}