hdu 2057 十六进制的加减

 

这题可以直接用十六进制输入,然后进行十六进制的运算(其实不管是什么进制,在计算机中都是以二进制来计算的,只是按输入输出的格式不同,而强制转化为其它的进制),就像十进制的加法一样。

这里要注意的是输入小于15位,结果超过了二进制中的32位而小于64位。所以这里用__int64的类型。输入输入出格式就是(%I64x,%I64X)。由于%I64X,不能输出负数,所以负数的输出要做处理。

 

 

 1 #include <stdio.h>
 2 
 3 int main(){
 4     __int64 a,b;
 5     int flag;
 6     while(~scanf("%I64X%I64X",&a,&b))     //这里必须是大写的X
 7     {
 8         b+=a;
 9         if(b<0)
10         {
11             b=-b;
12             flag=0;
13         }
14         else flag=1;
15 
16         if(!flag)
17            putchar('-');
18       printf("%I64X\n",b);
19 
20     }
21 }

 

posted @ 2014-03-19 15:32  galaxy77  阅读(229)  评论(0编辑  收藏  举报