10进制转换2、8、10、16进制
#include<cstdio>
#include<iostream>
#include<string>
#include<sstream>
#include <bitset>
using namespace std;
int main(void)
{
string s1,s2,s3;
int a=30;
stringstream ss;
ss<<bitset<8>(a);//10进制转成er进制读入流中,再以字符串输出
ss>>s3;
cout<<s3<<endl;//输出:00011110
ss.clear(); //不清空可能会出错
ss<<oct<<a;//10进制转成八进制读入流中,再以字符串输出
ss>>s1;
cout<<s1<<endl;//输出:36
ss.clear(); //不清空可能会出错。
ss<<dec<<a; //10进制转成十进制读入流中,再以字符串输出
ss>>s2;
cout<<s2<<endl;//输出:1e
ss.clear(); //不清空可能会出错。
ss<<hex<<a; //10进制转成十六进制读入流中,再以字符串输出
ss>>s2;
cout<<s2<<endl;//输出:1e
return 0;
}
Output:
00011110
36
30
1e
2、8、10、16进制字符串转换成10进制
#include<iostream>
#include<string>
#include<sstream>
#include <bitset>
using namespace std;
int main(void)
{
string s="20";
int a;
bitset<8> bit(stoi(s, nullptr, 16));
cout<<bit<<endl;
stringstream ss_8;
ss_8<<oct<<s;//以8进制读入流中
ss_8>>a;//10进制int型输出
cout<<a<<endl;
stringstream ss_10;
ss_10<<dec<<s;//以10进制读入流中
ss_10>>a;//10进制int型输出
cout<<a<<endl;
stringstream ss_16;
ss_16<<hex<<s;//以16进制读入流中
ss_16>>a;//10进制int型输出
cout<<a<<endl;
return 0;
}
Output:
00100000
16
20
32