HDU_2057——64位无符号16进制数的运算
Problem Description
There must be many A + B problems in our HDOJ , now a new one is coming. Give you two hexadecimal integers , your task is to calculate the sum of them,and print it in hexadecimal too. Easy ? AC it !
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.
Output
For each test case,print the sum of A and B in hexadecimal in one line.
Sample Input
+A -A
+1A 12
1A -9
-1A -12
1A -AA
Sample Output
0
2C
11
-2C
-90
1 #include <cstdio> 2 int main() 3 { 4 __int64 a,b,c; 5 //十六进制数直接可以运算,字母X要大写 6 while(~scanf("%I64X%I64X",&a,&b)) 7 { 8 //输入的时候是10...10101010 9 //存储的时候是11...01010110补码形式 10 //输出的时候是FF...56 11 //如果和的符号位是-的话,先-1再取反就变回原码形式 12 //然后再另外输出一个'-' 13 c=a+b; 14 if(c<0) 15 printf("-%I64X\n",~(c-1)); 16 else 17 printf("%I64X\n",c); 18 } 19 return 0; 20 }
——现在的努力是为了小时候吹过的牛B!!