现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

C++ 实现string转BYTE

2020-05-14 06:46 工业·编程 ⁄ 共 595字 ⁄ 字号 暂无评论

用于将形如"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;
}

给我留言

留言无头像?