十进制数到其他进制数的转换

偶有兴致,想起敲几句代码,却手生了。哎,贵在坚持呀。

先在这里添代码,后面解释。

#include<stdio.h>
#include<stdlib.h>
#define LEN 32
/*
 *将十进制数num转为base进制数,base允许范围为[2,62]
 */
void transter(int num,int base)
{
        if (base<2 || base>62)
        {
                printf("参数非法!\n");
                return ;
        }
        char result[LEN];
        int beichushu,yushu;
        beichushu=num;
        int i=LEN-1;
        while(beichushu!=0 && i>0)
        {
                yushu=beichushu%base;
                beichushu=beichushu/base;
                if(yushu>=0 && yushu<=9)
                        result[i--]=yushu+'0';
                else if(yushu>=10 && yushu<=15)
                        result[i--]=yushu+'A'-10;
                else if(yushu>=16 && yushu<=35)
                        result[i--]=yushu+'G'-16;
                else if(yushu >=36 && yushu <=61)
                        result[i--]=yushu+'a'-36;
                else
                        result[i--]=' ';
        }
        for(;i>=0;)
                result[i--]=' ';
        printf("%s\n",result);
}
int main()
{
        int num=123456;
        int base;
        for(base=2;base<=62;base++)
        {
                printf("base=%d\tresult=",base);
                transter(num,base);
        }
        return 0;
}

允许十进制数到base进制数的转换,其中base=[2,62]。当然可以扩充其他进制数。

十进制数及符号对应表:

十进制数    符号

0    0
1    1
……    ……
9    9

10    A
11    B
……    ……
15    F

16    G
17    H
……    ……
35    Z

36    a    
37    b
……    ……
61    z
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值