进制转换

#include<stdio.h>  
  
int main()  
{  
    int num,i,j,sys;  
    char a[100];  
  
    printf("please input a system 2 to 9 or 16 that you want:");//输入你想转化的进制。  
    scanf("%d",&sys);  
  
    printf("please a number:");                       //输入你想转化的数。  
    scanf("%d",&num);  
  
    if(2 < sys && sys < 9 || sys == 16)              //判断你输入的进制是否符合要求  
    {  
        for(i = 0;;i++)  
        {  
            a[i] = num % sys;                        //对你想转化的数取余  
            if(a[i] == 10)                           //将大于10的数用英文字母来表示。  
            {  
                a[i] = 'A';  
            }  
            if(a[i] == 11)  
            {  
                a[i] = 'B';  
            }  
            if(a[i] == 12)  
            {  
                a[i] = 'C';  
            }  
            if(a[i] == 13)  
            {  
                a[i] = 'D';  
            }  
            if(a[i] == 14)  
            {  
                a[i] = 'E';  
            }  
            if(a[i] == 15)  
            {  
                a[i] = 'F';  
            }  
            num = num / sys;                      //取余以后再对它求商。  
            if(num == 0)                          //商等于0退出循环。  
                break;  
        }  
    }  
    else  
    {  
        printf("The input you enter is wrong!\n ");  
        exit(0);  
    }  
  
    printf("character string puout result:");  
    for(i;0 <= i ;i-- )                           //输出结果  
    {  
        if(a[i] >='A' && a[i] <= 'F')  
        {  
            printf("%c",a[i]);  
        }  
        else   
            printf("%d",a[i]);  
    }  
    printf("\n");  
  
    return 0;  
}  
  
总结:进制的转化关键在于你要知道十进制和各个进制之间是怎样转化的。你输入的十进制数对你想转化的进制数取余数,然后再用商再取余数,直到商为0。
然后再把余数用逆序的方法把它结合起来,就是你要求的结果了  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值