规定格式输出
printf("%05o\n",35); //按八进制格式输出,保留5位高位补零
printf("%03d\n",35); //按十进制格式输出,保留3位高位补零
printf("%05x\n",35); //按十六进制格式输出,保留5位高位补零
也可以使用sscanf方法进行转换
sscanf(temp,"%x",&k);//将16进制字符串转换为10进制数
temp为字符串,中间为输出格式,最后一个参数进行值的接受
其实sscanf还有很多的用途,更多用法可以参考C++ sscanf()用法 - 小浩浩在此 - 博客园 (cnblogs.com)
其他进制转为10进制
自己手写
int Atoi(string s,int radix) //s是给定的radix进制字符串
{
int ans=0;
for(int i=0;i<s.size();i++)
{
char t=s[i];
if(t>='0'&&t<='9') ans=ans*radix+t-'0';
else ans=ans*radix+t-'A'+10;
}
return ans;
}
10转其他进制
string intToA(int n,int radix) //n是待转数字,radix是指定的进制
{
string ans="";
do{
int t=n%radix;
if(t>=0&&t<=9) ans+=t+'0';
else ans+=t-10+'A';
n/=radix;
}while(n!=0); //使用do{}while()以防止输入为0的情况
reverse(ans.begin(),ans.end());
return ans;
}
参考博客:C++中的各种进制转换函数汇总_vir_lee的博客-CSDN博客_c++进制转换