十進制轉16進制 、十進制轉二進制 函數

最近做畢業設計,好多同學要做編碼器,經常有人來問進制轉換的問題,

感謝作者:

http://bbs.xdnice.com/b59t75967r364921sk1.htm
索性把自己寫的兩個函數貼出來給大家用吧。
用法:
首先需要包含string.h頭文件。
dectohex 函數把一個十進制數dec轉換成最小長度爲len的十六進制字符串,
比如puts(dectohex(250,4));的結果就是 0x00FA,而puts(dectohex(250,2));的結果就是 0xFA

dectobin函數把一個十進制數dec轉換成最小長度爲len的二進制字符串,
比如puts(dectobin(13,4));的結果就是 1101,而puts(dectobin(13,8));的結果就是 00001101
希望對大家有用。



#include "string.h"
#include "stdio.h"

char * dectohex(int dec,int len)
{
static char buf[256];
char cell[]="0123456789ABCDEF";
int i=0;
memset (buf,0,256);
memset (buf,0,len);
while(dec!=0)
{
buf[i++]=cell[dec%16];
dec=dec/16;
}
strcat(buf,"x0");
return(strrev(buf));
}

char *dectobin(int dec,int len)
{
int i=0;
static char buf[256];
memset(buf,0,256);
memset(buf,0,len);
while(dec!=0)
{
buf[i++]=dec%2+48;
dec=dec/2;
}
return strrev(buf);
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章