这篇博客是从旧博客 WordPress 迁移过来,内容可能存在转换异常。
考察的是基础:
因为位数小于15,所以是大数,不是大数就用数组表示的。这里就是用__int64存储。
第二个考察的是进制的输入与输出:
C中:
%I64X %I64o %I64d %I64u分别表示十六进制,8进制,10进制,无符号位
C++中:
cin >> hex >> a >> b; // 十六进制
cout << hex << a << b;
cin >> dec >> a; //十进制
cin >> oct >>a; //八进制
注意:负数是用其补码表示,所以表示时应该改为其负数,并在前面输出'-'(负号)。
// Author: Tanky Woo
// HDOJ 2057
#include
#include
#include
using namespace std;
// www.wutianqi.com
int main()
{
__int64 a, b;
while(cin >> hex >> a >> b)
{
__int64 sum =a + b;
if(sum < 0)
{
sum =- sum;
printf("-");
}
cout << uppercase << hex << sum << endl;
}
}