进制转换

一.九进制转化为十进制

#include<stdio.h>
int main()
{
    int num,i=0,m=1,j,k,s=0,a[10]={0};
    scanf("%d",&num);
    while(num>0)
    {
        a[i]=num%10;
        num/=10;
        i++;
    }
    for(j=0;j<=i;j++)
    {
        m=1;
        for(k=1;k<=j;k++)
        m=m*9;
        if(a[j]<=3)
        s+=a[j]*m;
        if(a[j]>4)
        s+=(a[j]-1)*m;
    }
    printf("%d
",s);
    return 0;
}

二.二进制转化为十进制

#include<stdio.h>
#include<string.h>
#define N 40
int main()
{
    char str[N];
    int i,d=0;
    gets(str);
    for(i=0;str[i]!='';i++)
    d=d*2+(str[i]-'0');
    printf("%d",d);
    return 0; 
}

三.十进制转化为二进制

#include<stdio.h>
int main()
{
    int n,i=0,j,a[32];
    scanf("%d",&n);
    while(n>0)
    {
    a[i]=n%2;
        i+=1;
        n/=2;
    }
    for(i--;i>=0;i--)
    printf("%d",a[i]);
    printf("
");
    return 0;
 } 
原文地址:https://www.cnblogs.com/yuanqingwen/p/11455480.html