十进制转十六进制往往是一个很小的需求,小得让人不知道是自己动手写好,还是先搜索一下
以下是我的C语言实现,稍加修改,还可以转其他进制,例如自创的32进制、64进制、99进制等……
void reversestr(char *source,char target[],unsigned int length)
{
int i;
for(i=0;i<length;i++)
target[i]=source[length-1-i];
target[i]=0;
}
void tohex(unsigned long num,char *hexStr)
{
unsigned long n = num;
char hextable[]="0123456789ABCDEF";
char temphex[16],hex[16];
int i=0;
while(n){
temphex[i++]=hextable[n%16];
n /= 16;
}
temphex[i]=0;
reversestr(temphex,hex,i);
strcpy(hexStr,hex);
}