十進制轉十六進制往往是一個很小的需求,小得讓人不知道是自己動手寫好,還是先搜索一下
以下是我的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);
}
{
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);
}