| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 370 人关注过本帖
标题:(分享)10进制转换为2 - 36进制
只看楼主 加入收藏
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
结帖率:94.64%
收藏
已结贴  问题点数:20 回复次数:2 
(分享)10进制转换为2 - 36进制
程序代码:
#include <stdio.h>
#include <stdlib.h>

char * dec_to_x_string(int, int);
int get_digits(int, int);

int main(void) {
    int dec, x;
    scanf("%d%d", &dec, &x);
    char * str = dec_to_x_string(dec, x);
    if(str == NULL) {
        return 1;
    }
    printf("%s\n", str);
    free(str);
    return 0;
}

char * dec_to_x_string(int dec, int x) {
    if(x < 2 || x > 36) {
        printf("UnsupportedOperation\n");
        return NULL;
    }
    int digits = get_digits(dec, x);
    char * str = (char *)malloc(sizeof(char) * digits + 1);
    str[digits] = '\0';
    int ch;
    while(dec) {
        ch = dec % x;
        if(ch > 9) {
            ch = ch - 10 + 65;
        } else {
            ch += 48;
        }
        str[--digits] = (char)ch;
        dec /= x;
    }
    return str;
}

int get_digits(int dec, int x) {
    int digits = 0;
    while(dec) {
        dec /= x;
        digits++;
    }
    return digits;
}
代码不是很难,顺便补充一下:
G : 16
H : 17
I : 18
J : 19
K : 20
...
34 : Y
35 : Z
搜索更多相关主题的帖子: dec 
2011-05-25 13:08
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:10 
学习啦!!!

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-05-25 13:11
Toomj
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:257
专家分:1826
注 册:2011-5-17
收藏
得分:10 
帮顶哈~
2011-05-25 13:18
快速回复:(分享)10进制转换为2 - 36进制
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016580 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved