十六进制字符转数字

来源:互联网 发布:双系统linux安装教程 编辑:程序博客网 时间:2024/04/30 23:15
int CharToNumber(const char c){if (c >= 'a' && c <= 'f')return (c - 'a' + 10);if (c >= 'A' && c <= 'F')return (c - 'A' + 10);if (c >= '0' && c <= '9')return (c - '0');// default,fix mereturn 0;}// convert hex string to numbervoid HexStringToNumber(const char* psrc, char* pbuf, const int cbsize){if (NULL == psrc || NULL == pbuf || 0 == cbsize)return;int len = strlen(psrc);len = (len % 2 == 0) ? (len / 2) : (len /2 + 1);int temp = (len  > cbsize ? cbsize : len);for (int i=0; i<temp; i = i+1){int h = CharToNumber(psrc[2*i]);int l = CharToNumber(psrc[2*i+1]);pbuf[i] = h*16 + l;}}

0 0