十進位制轉為十六進位制(C語言)
阿新 • • 發佈:2018-11-20
#include <stdlib.h> #include <stdio.h> #include <string.h> /*********十進位制轉為十六進位制函式******** 第一個引數為要被轉換的十進位制, 第二個為轉換完成儲存的十六進位制的位置, 第三個引數為轉換後十六進位制的長度。 *******************/ void To_Hex(unsigned int value, char buffer[], int length) { unsigned int i=(sizeof(unsigned int)*2); unsigned int temp; int j=0; while(i--) { temp = (value&(0xf<<(4*i)))>>(4*i); if(temp>9) buffer[j] = 'A'+temp-10; else buffer[j] = '0'+temp; j++; } buffer[length] = '\0'; } int main() { char buf_hex[100]; unsigned int wd=31584648; unsigned int jd=118483737; memset(buf_hex,0,sizeof(buf_hex)); printf("wd = %X \n",wd); printf("jd = %X \n",jd); To_Hex(wd,buf_hex,8); printf ("wd is :%s \n",buf_hex); memset(buf_hex,0,sizeof(buf_hex)); To_Hex(jd,buf_hex,8); printf ("jd is :%s \n",buf_hex); return 0; }
執行結果:
[email protected]:/home/HEX# ./3
wd = 1E1F188
jd = 70FEB19
wd is :01E1F188
jd is :070FEB19
[email protected]:/home/HEX#