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 }

 

你可能感兴趣的:(HDU)