C语言八进制和十六进制转化为十进制

十进制整数1234对应的八进制和十六进制(字母大写)

  1. 直接输出
int main()
{
    int a=1234;
    printf("%#o ",a);//以八进制输出
    printf("%#X",a);//以十六进制输出
}

image

c语言中,为了区分不同进制数字,数字前要带上前缀,八进制数前面带上‘0‘;十六进制数前面带上’0X‘或’0x‘;代码中的’#‘就是前缀符

  1. 用十进制转化为其他进制的方法

八进制:

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]);
    }

这里的思路就是定义数组存放模运算后的数,再循环读取对应的数组元素

posted @ 2021-08-17 20:06  vhy  阅读(712)  评论(0编辑  收藏  举报