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 }

 

posted @ 2013-07-11 22:29  瓶哥  Views(646)  Comments(0Edit  收藏  举报