以 2、3……16 进制输出一无符号整型数,代码如下:
递归算法:
void binary_to_ascii(unsigned int value, short int binary) //value是要求输出的数,binary是进制
{
unsigned int quotient; //临时变量存储每次的商
quotient = value / binary;
if(quoitient != 0)
binary_to_ascii(quotient);
putchar("0123456789ABCDEF"[value%binary]); //字符串常量在一个表达式中它的值就是一个指针常量
}
循环算法:
#define MAXSIZE 100
void binary_to_ascii(unsigned int value, short int binary)
{
char ascii[MAXSIZE]; //临时存储每次的余数,输出的时候要反向输出才正确
char *p; //临时指针来操作上面的字符数组
p = ascii;
do{
*(p++) = "0123456789ASCDEF"[value%binary];
}while((value /= binary) != 0);
p--;
/*逆序输出*/
while(p >= ascii)
{
putchar(*(p--));
}
}
以上代码可能很粗糙,有什么不足或不对的地方欢迎指出!