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;
- }