一、10进制数转换为任意进制
1.函数:itoa()
(1) 头文件 :#include <cstdlib>
(2)格式: itoa(num, str, m); num是一个int型的,是要转化的10进制数,str是转化结果,m为目标进制。
二、任意进制转换成10进制
1.自定义函数
//m是要转换成的进制,s是给定的m进制下的字符串
//结果为int型
int binary(int m, string s){
int ans=0;
for(int i=0;i<s.size();i++){
char t=s[i];
if(t>='0'&&t<='9')
ans=ans*m+t-'0';
else
ans=ans*m+t-'a'+10;
}
return ans;
}
2.使用字符串流string,stream进制转换(8、16、10进制之间的转换)
#include<iostream>
#include<string>
#include<sstream>
using namespace std;
int main(){
string s="20";
int a,b,c;
stringstream ss1;
ss1<<hex<<s; //以16进制读入流中
ss1>>a; //10进制int型输出
cout<<a<<endl;
stringstream ss2;
ss2<<oct<<s; //以8进制读入流中
ss2>>b; //10进制int型输出
cout<<b<<endl;
stringstream ss3;
ss3<<dec<<s; //以10进制读入流中
ss3>>c; //10进制int型输出
cout<<c<<endl;
return 0;
}