将十六进制字节值转换为 DWORD (ascii) 格式



需要从字节值转换为DWORD(基于ASCII(!

例:

输入:1F 12 BA 43(保存在std::vector<BYTE>(

输出:31 46 31 32 42 41 34 33(输入的 ascii 值(->也存储在std::vector<BYTE>

进行此转换的最简单方法?

感谢

typedef unsigned char BYTE;
typedef std::vector<BYTE> Vector;
Vector hex2ascii(Vector const &src) {
  Vector result;
  for ( Vector::const_iterator iter = src.begin(); iter!=src.end(); iter++ ) {
    BYTE item = *iter;
    unsigned bits=8;
    do {
      bits -= 4;
      result.push_back("0123456789ABCDEF"[(item>>bits)&15u]);
    } while(bits);
  }
  return result;
}

最新更新