HDU 2057

来源:互联网 发布:余姚数控编程培训 编辑:程序博客网 时间:2024/06/07 10:14


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即可!

阿呆


  1. #include <iostream>  
  2. #include <iomanip>  
  3. using namespace std;  
  4. int main()  
  5. {  
  6.     __int64 a,b,c;  
  7.     while(cin>>hex>>a>>b){  
  8.         c=a+b;  
  9.         if(c<0){  
  10.          cout<<'-';     
  11.          c=-c;  
  12.         }  
  13.         cout<<hex<<uppercase<<c<<endl;  
  14.           
  15.     }  
  16.     return 0;  
  17. }