纯算法实现数字转字符串
1. 不能依赖第三方库。
2. 32 位平台,intel 处理器,小尾编码。
我只实现了转为 十六进制 的。
期待高手给出转为 十进制 的。
下面是我的代码:
#define LOBYTE(x) ((x)&0x0F)#define HIBYTE(x) ((x)>>4)#define ByteToChar(x) (('0'+(x))>'9'?'a'+(('0'+(x))-'9'-1):'0'+(x))void IntToA(char *str,const int *num){ unsigned char *p = (unsigned char*)new int; int len = sizeof(int)*2+sizeof(char);// str = new char[len];// memset(str, 0, len*sizeof(char)); memcpy(p, num, sizeof(int)); for (int i=0, index = len -2; index >= 0; i++, index--) { str[index] = ByteToChar(LOBYTE(p[i])); str[--index] = ByteToChar(HIBYTE(p[i])); }}int _tmain(int argc, _TCHAR* argv[]){ char p[9] = {0}; int n = 0xffab83ec; IntToA(p, &n); printf("%s\n", p); return 0;}