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);
}

 

分类:

技术点:

相关文章: