{
/*建立索引*/
char index[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int i = 0, j , k;
unsigned unum;
if (radix == 10 && num < 0)
{
unum = (unsigned)-num;
str[i++] = '-';
}
else
{
unum=(unsigned)num; /* 其他情况 */
}
/*倒序,因为不能顺序*/
do
{
str[i++] = index[unum % (unsigned)radix]
unum = unum / radix;
}while(unum)
/* 转换 */
if(str[0]=='-')
{
k = 1; /* 十进制负数 */
}
else
{
k = 0;
}
/* 将原来的“/2”改为“/2.0”,保证当num在16~255之间,radix等于16时,也能得到正确结果 */
for(j=k; j<=(i-1)/2.0+k; j++)
{
num = str[j];
str[j] = str[i-j-1+k];
str[i-j-1+k] = num;
}
return str;
}