A + B Again

参考链接: https://www.cnblogs.com/NYNU-ACM/p/4236795.html

题上说的A 和B 的长度不超过15,因为A和B 是十六进制数,如果长度不考虑正负号的话,一个数字表示4位二进制数,所以A 、B的位数是60位,所以定义A、B时,要定义为64位。当然如果考虑正负号的话,A、B含有的的数字最多为14个,这时,A、B的位数为56位,当然还要定义成64位的。。然后,把A和B相加,当然还是十六进制的数,赋值给B,判断B是不是负数,如果是负的,需变成正的,输出时,添个负号即可。。。

#include <cstdio>

int main()
{
	__int64 A, B;
	while(scanf("%I64X %I64X", &A, &B) != EOF)
	{
		B = A + B;
		if(B >= 0)	printf("%I64X\n", B);
		if(B < 0)
		{
			B = -B;
			printf("-%I64X\n", B);
		}
	}
	
	return 0;
} 

  

posted @ 2019-08-09 17:09  青衫客36  阅读(365)  评论(0编辑  收藏  举报