标签: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