http://bbs.pediy.com/showthread.php?t=128615
这位面试的兄弟,哈哈,估计题目没看仔细吧? 我就直接show代码了,不考虑意外和溢出啥的
TX招我吧 哈哈~~~
代码:
int _hex2int(char* lpStr) { unsigned int ret = 0; do { unsigned char c = *lpStr; ret = ret << 4; if (c >= 'a' && c <= 'f'){ ret += 10 + c - 'a'; } else if (c >= 'A' && c <= 'F'){ ret += 10 + c - 'A'; } else if (c >= '0' && c <= '9'){ ret += c - '0'; } else { printf("error _hex2int\n"); break; } } while(*++lpStr); printf("\n%x %d\n", ret, ret); return ret; } void _int2str(unsigned int i) { char fmt[16] = {0}; int bit_pos = 0; do { fmt[14 - bit_pos] = '0' + (i % 10); bit_pos++; i = i/10; } while(i); printf("%s\n", fmt + 15 - bit_pos); } int main(int argc, char** argv) { char test[] = "1a12fa"; _int2str(_hex2int(test)); }