1. 程式人生 > >十進位制轉十六進位制的C實現

十進位制轉十六進位制的C實現

以下是程式碼實現:

void dec16hex(int num,char *hex)

{
char hextable[] = "0123456789ABCDEF";
int i = 0;
int j,k;
char temhex[16],ch;
while(num)         
{
hex[i++] = hextable[num%16];   //對十進位制數求餘並最終與hextable陣列中的字元匹配
num = num/16;
}
hex[i] = '\0';         //給字串從末尾加'\0'
for(j = 0,k = i-1;j < i/2;j++,k--)  //將字串反序
{
ch = hex[j];
hex[j] = hex[k];
hex[k] = ch;
}
}
int main(int argc, const char *argv[])
{
int num,ret;
char hex[16];
while(1)
{
printf("十進位制(0~256):");
scanf("%d",&num);
if(num < 0)
break;
dec16hex(num,hex);
printf("十六進位制:");
puts(hex);
}

return 0;

}

通過修改,可以實現其他進位制的轉換。。。。