http://acm.hdu.edu.cn/showproblem.php?pid=2057
C++提供十六进制加法
头文件:#include <iomanip>
说明:是I/O流控制头文件,就像C里面的格式化输出一样
控 制 符 | 作 用 |
dec | 设置整数为十进制 |
hex | 设置整数为十六进制 |
oct | 设置整数为八进制 |
setbase(n) | 设置整数为n进制(n=8,10,16) |
setfill(n) | 设置字符填充,c可以是字符常或字符变量 |
setprecision(n) | 设置浮点数的有效数字为n位 |
setw(n) | 设置字段宽度为n位 |
setiosflags(ios::fixed) | 设置浮点数以固定的小数位数显示 |
setiosflags(ios::scientific) | 设置浮点数以科学计数法表示 |
setiosflags(ios::left) | 输出左对齐 |
setiosflags(ios::right) | 输出右对齐 |
setiosflags(ios::skipws) | 忽略前导空格 |
setiosflags(ios::uppercase) | 在以科学计数法输出E与十六进制输出X以大写输出,否则小写。 |
setiosflags(ios::showpos) | 输出正数时显示"+"号 |
setiosflags(ios::showpoint) | 强制显示小数点 |
resetiosflags() | 终止已经设置的输出格式状态,在括号中应指定内容 |
hex的输出中字母默认为小写,需要加上uppercase
十六进制负数在计算机里表示为补码形式,要显示出带正负号的十六进制形式来就要对其取反加负号,-c即可!
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
__int64 a,b,c;
while(cin>>hex>>a>>b){
c=a+b;
if(c<0){
cout<<'-';
c=-c;
}
cout<<hex<<uppercase<<c<<endl;
}
return 0;
}