我是靠谱客的博主 拉长电源,这篇文章主要介绍【2057 A + B Again ?】A + B Again,现在分享给大家,希望可以做个参考。

A + B Again

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 12201    Accepted Submission(s): 5331


Problem Description
There must be many A + B problems in our HDOJ , now a new one is coming.
Give you two hexadecimal integers , your task is to calculate the sum of them,and print it in hexadecimal too.
Easy ? AC it !
 

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.
 

Output
For each test case,print the sum of A and B in hexadecimal in one line.
 

Sample Input
复制代码
1
2
3
4
5
6
7
8
9
+A -A +1A 12 1A -9 -1A -12 1A -AA
 

Sample Output
复制代码
1
2
3
4
5
6
7
8
9
0 2C 11 -2C -90
 

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream> #include<cstdio> using namespace std; int main(){ _int64 a,b,sum; while(scanf("%I64X %I64X",&a,&b)!=EOF){ sum=a+b; if(sum<0){ sum=-sum; printf("-"); } printf("%I64Xn",sum); } }

这个十六进制可以直接加减的。所以无需转换的。
在VC++中  longlong 用_int64 表示。输入格式为

输出符 %I64x

[signed]        long long   [int]        64        -2^63 ~ 2^63-1             %I64d

unsigned      long long   [int]        64        0 ~ 2^64-1                    %I64u、%I64o、%I64x

 

所以直接输出的a+b 是两个正数的和。

至于是无符号,输入时间把符号位至1,按正数计算。至于sum=a+b。出现负数,是因为十六进制本身可以自动加减,只是在输出时间把符号位按正数处理了。

如果理解有误请指出。

最后

以上就是拉长电源最近收集整理的关于【2057 A + B Again ?】A + B Again的全部内容,更多相关【2057内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部