我们之前已经学过进制转化的方法,都是手动转换:模某个数取余
在C语言中有直接进制转换的方法,可以将一个十进制的整形数,直接转换成它的八进制或者16进制形式。
%x:将整数输出为十六进制数
%o:将整数输出为八进制数
#include<bits/stdc++.h>
using namespace std;
int main()
{
int x;
while(~scanf("%d",&x))
{
printf("十六进:%x\n",x);
printf("八进制:%o\n",x);
}
return 0;
}
对于要求控制输出位数的类似于int的写法:
%0kx:将整数输出为k位的十六进制数
%0ko:将整数输出为k位的八进制数
#include<bits/stdc++.h>
using namespace std;
int main()
{
int x;
while(~scanf("%d",&x))
{
printf("4位十六进:%04x\n",x);
printf("6位八进制:%06o\n",x);
}
return 0;
}