题意:输出A+B,A和B都是十六进制。
题目给定条件:The length of A and B is less than 15.
也就说两个十六进制数转换为二进制,最多只有 15*4=60位
预算结果转换为二进制,最多只有 61 位
__int64 是用 64 位二进制表示一个整数,因此是不会超范围的
注意这64位中最高位是符号位(表示正负),实际可用的只有 63 位
#include<stdio.h>
int main()
{
__int64 a,b;
while(scanf("%I64X%I64X",&a,&b) != EOF) //输入
{
if(a + b >= 0)
printf("%I64X\n",a+b);
else
printf("-%I64X\n",-(a+b)); //输出为无符号,所以需要判断。
}
return 0;
}