2057 A + B Again

关键字: 代码分享 杭电100题

问题描述

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

+A -A
+1A 12
1A -9
-1A -12
1A -AA

Sample Output

0
2C
11
-2C
-90

问题分析

Problem Analyse

在HDOJ上已经有很多道A+B的题目了,现在有来了道新的。

给你两个16进制数,你的任务就是计算它们的和,然后以16进制输出。简单吗?把它AC掉!

C编程基础知识

Algorithm Analyse

本题的数据量不大,用64位整数不会溢出。

用%I64X就可以对数据读入输出进行操作。但问题在于直接用%I64X,是不能输出负数的,所以我们碰到负数要自己转成正数,在前面加‘-’。

算法实现

判断是否为负数,可以直接判断是否<0,也可以求二进制最高位上是不是为1:(a+b)&((__int64)1<<63)

参考源码

redraiment使用Emacs Lisp批量迁移《HDU 2050-2059》