C语言八进制和十六进制转化为十进制
十进制整数1234对应的八进制和十六进制(字母大写)
- 直接输出
int main()
{
int a=1234;
printf("%#o ",a);//以八进制输出
printf("%#X",a);//以十六进制输出
}
c语言中,为了区分不同进制数字,数字前要带上前缀,八进制数前面带上‘0‘;十六进制数前面带上’0X‘或’0x‘;代码中的’#‘就是前缀符
- 用十进制转化为其他进制的方法
八进制:
int main()
{
int i,j,m=0,n=0;
int a=1234;
int b[100];
char c[100];
while(a>0)
{
b[m]=a%8;
a=a/8;
m++;
}
printf("0");
for(i=m-1;i>=0;i--)
{
printf("%d",b[i]);
}
}
十六进制:
int main()
{
int j,n=0;
int a=1234;
int b[100];
while(a>0)
{
b[n]=a%16;
a=a/16;
n++;
}
printf("0X");
for(j=n-1;j>=0;j--)
{
if(b[j]>9&&b[j]<16)
{
printf("%c",b[j]-10+'A');
}
else
printf("%d",b[j]);
}
这里的思路就是定义数组存放模运算后的数,再循环读取对应的数组元素