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

时间:2014-12-22 06:39:03

标签: c++ byte ascii dword

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

示例:

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

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

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

THX

1 个答案:

答案 0 :(得分:1)

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