用于将形如"0x1A"的string转成BYTE类型.代码如下, 有问题欢迎指出.
bool str2byte(const std::string &str, BYTE &bRet)
{
bRet = 0x00; //结果
size_t iPos = 1; //位
size_t power = 1; //幂次//没找的'x'返回
if(std::string::npos == str.find("x"))
{
return false;
}//从右往左依次取每个字符
while (str.find("x") != (str.length()-iPos))
{
char cVal = str[str.length()-iPos];
int iVal = int(cVal);//0~9
if ((iVal >= 48) && (iVal <= 57))
{
bRet += ((iVal-48) * power);
}
//A~F
else if ((iVal >= 65) && (iVal <= 70))
{
bRet += ((iVal-55) * power);
}
//a~f
else if ((iVal >= 97) && (iVal <= 102))
{
bRet += ((iVal-87) * power);
}++iPos;
power *= 16;
}return true;
}