renzhezhiye

从CPU的角度来说,移位和与或操作效率是比较高的,这是本实现的一个关键。

bool HexToInt(int *output, char* szInput) 
{
  //assert....
  int cbInput = strlen(szInput);
  for ( ; cbInput > 0; cbInput--, szInput++)
  {
    char digit = szInput[0];
    if (digit >= \'0\' && digit <= \'9\') digit = (digit - \'0\');
    else if (digit >= \'A\' && digit <= \'F\') digit = (digit - \'A\') + 10;
    else if (digit >= \'a\' && digit <= \'f\') digit = (digit - \'a\') + 10;
    else return(false);

    *output = ((*output << 4) | digit); //虽然是十进制数,但是右移/或操作会自动转换为二进制进行
  }
  return(true);
}

 

分类:

技术点:

相关文章:

  • 2021-12-14
  • 2021-12-14
  • 2022-12-23
  • 2021-11-26
  • 2022-01-26
  • 2022-12-23
  • 2022-01-09
  • 2021-12-14
猜你喜欢
  • 2021-12-14
  • 2021-12-14
  • 2021-12-14
  • 2021-12-14
  • 2021-11-26
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案