#include <stdio.h>
int hex(int x,char *);
int main()
{
char a[9];
int n;
unsigned long int x;
scanf("%lu",&x);
n = hex(x, a); //n为hex函数的返回值 是十六进制数的位数
a[n]=0; //字符串结束
puts(a);
}
int hex(int x,char * a)
{
char t[]="0123456789ABCDEF";
int n;
if(x<16)
{
a[0] = t[x];
return 1; //递归结束
}
n = hex(x/16, a); //当十进制数大于16,取下一位递归,递归结束后第n位为x%16的值
a[n] = t[x%16];
return n+1; //为(n+1)位
}
将int十进制转化为16进制字符串输出
猜你喜欢
转载自blog.csdn.net/KEVINzzh/article/details/104867787
今日推荐
周排行