(分享)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



 
											






 
	    

 
	

 
										
					
	
