下面的函数用于实现ascii码字符转换成对应的十六进制数。 /*----------------------------------------------------------------------------------------------- 输入参数1 @buf ascii码字符串 输入参数2 @len 字符串buf的长度 返回对应的hex进制的值 例如: 输入"23abcfe"字符串, 对就输出的hex值为: 0x23abcfe -------------------------------------------------------------------------------------------------*/ unsigned int ascii2hex (char *buf, int len) { int i = 0, j = 0; unsigned int ret = 0; char p[2] = {0}; int tmp = 1; for(i = 0; i<len; i++){ memcpy(p,&buf[i],1); switch (p[0]){ case 'a': tmp = 1; for(j=0;j<len-1-i;j++) tmp *= 16; ret += 10*tmp; break; case 'b': tmp = 1; for(j=0;j<len-1-i;j++) tmp *= 16; ret += 11*tmp; break; case 'c': tmp = 1; for(j=0;j<len-1-i;j++) tmp *= 16; ret += 12*tmp; break; case 'd': tmp = 1; for(j=0;j<len-1-i;j++) tmp *= 16; ret += 13*tmp; break; case 'e': tmp = 1; for(j=0;j<len-1-i;j++) tmp *= 16; ret += 14*tmp; break; case 'f': tmp = 1; for(j=0;j<len-1-i;j++) tmp *= 16; ret += 15*tmp; break; default: tmp = 1; for(j=0;j<len-1-i;j++) tmp *= 16; ret += atoi(p)*tmp; break; } } return ret; }