long str16to10(unsigned char *s) { //s字符串最大为"FFFFFFFF" //调用示例: // long lRet; lRet=str16to10("a10"); // -- (结果: lRet=2576) long lRet; unsigned char ch; lRet=0; while (*s) { ch=*s; if ((ch >= '0') && (ch <= '9')) ch -= '0'; else if ((ch >= 'A') && (ch <= 'F')) ch -= '7'; else if ((ch >= 'a') && (ch <= 'f')) ch -= 'W'; lRet=(lRet<<4)+ch; s ++; } if(lRet<0) { lRet=abs(lRet); } return lRet; }