如何将十进制数分别转换成八进制和十六进制数?
- 内容介绍
- 文章标签
- 相关推荐
本文共计457个文字,预计阅读时间需要2分钟。
伪原创可以改写为模仿创新。以下是改写后的开头内容:
模仿创新,是一种在现有基础上进行创新的方法。它通过借鉴他人成功经验,结合自身特点,创造出新的产品或服务。这种方法在短时间内可以快速提升创新效率,降低研发成本。
#include <iostream>
#include <sstream>
using namespace std;
int main()
{
/*----------------------------------
十六进制,八进制转十进制
----------------------------------*/
int decimal1,decimal2;
string oct_test = "75";
string hex_test = "A3";
stringstream ss1;
ss1.str(oct_test);
ss1>>oct>>decimal1;
cout<<"Convert oct to decimal:"<<decimal1<<endl;
//ss1.clear();//若不想从新定义stringstream流,必须先清空ss1中的缓存
stringstream ss2;
ss2.str(hex_test);
ss2>>hex>>decimal2;
cout<<"Convert hex to decimal:"<<decimal2<<endl;
/*----------------------------------
十进制转八进制、十六进制
----------------------------------*/
int decimal;
stringstream ss,sss;
cout<<"Enter a decimal number:";
cin>>decimal;
/*下面两句等价于:
cout<<"Convert to hex:"<<hex<<decimal<<endl;
*/
//十进制转十六进制
ss<<hex<<decimal;
cout<<"Convert to hex:"<<ss.str()<<endl;
//十进制转八进制
ss.str(""); //同上,若不想从新定义stringstream流,必须先将ss.str()置为空
ss<<oct<<decimal;
cout<<"Convert to oct:"<<ss.str()<<endl;
system("pause");
return 0;
}
运行结果如下:
十六进制结果控制:
将: ss<<hex<<decimal; 替换为: ss << "0x" << uppercase << setfill(‘0‘) << setw(4) << std::hex << decimal;
uppercase : 将小写转大写; setfill(‘0‘): 填充0; setw(4): 设置位宽为4
这里要加入头文件 #include <iomanip>
再次运行结果为:
本文共计457个文字,预计阅读时间需要2分钟。
伪原创可以改写为模仿创新。以下是改写后的开头内容:
模仿创新,是一种在现有基础上进行创新的方法。它通过借鉴他人成功经验,结合自身特点,创造出新的产品或服务。这种方法在短时间内可以快速提升创新效率,降低研发成本。
#include <iostream>
#include <sstream>
using namespace std;
int main()
{
/*----------------------------------
十六进制,八进制转十进制
----------------------------------*/
int decimal1,decimal2;
string oct_test = "75";
string hex_test = "A3";
stringstream ss1;
ss1.str(oct_test);
ss1>>oct>>decimal1;
cout<<"Convert oct to decimal:"<<decimal1<<endl;
//ss1.clear();//若不想从新定义stringstream流,必须先清空ss1中的缓存
stringstream ss2;
ss2.str(hex_test);
ss2>>hex>>decimal2;
cout<<"Convert hex to decimal:"<<decimal2<<endl;
/*----------------------------------
十进制转八进制、十六进制
----------------------------------*/
int decimal;
stringstream ss,sss;
cout<<"Enter a decimal number:";
cin>>decimal;
/*下面两句等价于:
cout<<"Convert to hex:"<<hex<<decimal<<endl;
*/
//十进制转十六进制
ss<<hex<<decimal;
cout<<"Convert to hex:"<<ss.str()<<endl;
//十进制转八进制
ss.str(""); //同上,若不想从新定义stringstream流,必须先将ss.str()置为空
ss<<oct<<decimal;
cout<<"Convert to oct:"<<ss.str()<<endl;
system("pause");
return 0;
}
运行结果如下:
十六进制结果控制:
将: ss<<hex<<decimal; 替换为: ss << "0x" << uppercase << setfill(‘0‘) << setw(4) << std::hex << decimal;
uppercase : 将小写转大写; setfill(‘0‘): 填充0; setw(4): 设置位宽为4
这里要加入头文件 #include <iomanip>
再次运行结果为:

