将整数转换为字节数组时获取奇数字符

时间:2016-10-13 18:02:56

标签: c++ c++11

我正在使用以下代码段将整数转换为vector<unsigned char>

const vector<unsigned char> int_to_bytearray(const size_t value) noexcept {
      unsigned char bytes[4];
      bytes[0] = (value >> 24) & 0xFF;
      bytes[1] = (value >> 16) & 0xFF;
      bytes[2] = (value >> 8) & 0xFF;
      bytes[3] = value & 0xFF;
      const vector<unsigned char>to_return(bytes, bytes + sizeof bytes);
      return to_return;
}

如果我传递值196608,我得到{'\x00', '\x03', '\x00', '\x00'}这是我所期望的。如果我通过37,我会{ 0, 0, 0, % },百分比标记会让我失望。我错过了什么?

1 个答案:

答案 0 :(得分:7)

你得到了&#39;%&#39;字符,其代码为37.所以一切都按预期工作。