C++ 十进制 与 八进制、十六进制 互转
发布时间:2020-12-16 09:18:48 所属栏目:百科 来源:网络整理
导读:#include iostream #include sstream using namespace std; int main(){ /* ---------------------------------- 十六进制,八进制转十进制---------------------------------- */ int decimal1,decimal2; string oct_test = " 75 " ; string hex_test = " A
#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 ? 再次运行结果为: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |