十六进制两数相加—航电oj2057

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.‎
输入包含多个测试用例,请处理到文件的末尾。每个情况由两个十六进制整数 A 和 B 组成,在一行中由空格分开。A 和 B 的长度小于 15。‎

Output
For each test case,print the sum of A and B in hexadecimal in one line.‎
对于每个测试用例,将十六进制的 A 和 B 之和打印在一行中。‎

Sample Input
+A -A
+1A 12
1A -9
-1A -12
1A -AA

Sample Output
0
2C
11
-2C
-90
思路:
两个十六进制数使用%llx输入并相加,若为和负数,则需要输出它的反,并在前面添加负号。(注:16进制数长度小于15位,所以换算成2进制位的话小于64(16*4)位,需用长整形%llx。)

代码:

#include <stdio.h>
#include <stdlib.h>
int main()
{
	long long a,b,s;//16进制数长度小于15位,所以换算成2进制位的话小于64(16*4)位,需用长整形。
	while(scanf("%llX%llX",&a,&b)!=EOF)	
	{
		s=a+b;
		if(s<0)     //若为负数,则输出-s,添加负号 
			printf("-%llX\n",-s);			
		else
		 	printf("%llX\n",s);
	}		    
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值