标签:c++ x的负数输出解决方案 c 二进制
+A -A +1A 12 1A -9 -1A -12 1A -AA
0 2C 11 -2C -90
哈哈... 感觉挺水的 但是挺好玩的... 不知道为什么%X 或者%I64X 为负数的时候 不能直接输出必须要 变成正数再输出...
下面是自己感觉说得过去的理由....
1A -AA
不变负数 答案是 FFFFFF70
变负数后 答案是90 再手动加个符号 -90
上面这个案例, 1A=26 -AA=-170 ans= -144
144 二进制是 1001 0000 取反后 二进制是1111 1111 1111 1111 1111 1111 0110 1111 再加1 二进制是 1111 1111 1111 1111 1111 1111 0111 0000
可能是因为%X没%d机智吧,, 他是老老实实 按十六进制输出的 所以是 FFFFFF70.
所以呢 ,对不够机智的%X家族 要加上个符号. 至少对c是这样的.
#include<stdio.h> #include<math.h> int main() { __int64 a,b,c; while(scanf("%I64X %I64X ",&a,&b)!=EOF) { c=a+b; if(c>=0) printf("%I64X\n",c); else printf("-%I64X\n",-c); } return 0; }
hdu 2057 %X 为负数时的解决方案,布布扣,bubuko.com
标签:c++ x的负数输出解决方案 c 二进制
原文地址:http://blog.csdn.net/u013532224/article/details/38336371