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)); }
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法
char *_int2hex(int i) { static char h[] = "0123456789abcdef"; static char s[32]; unsigned long val = i; char *p = &s[31]; *(--p) = 0; do { *(--p) = h[val % 16]; val /= 16; }while (val && p>=s); return p; }