Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将整数转换为字节数组时获取奇数字符_C++_C++11 - Fatal编程技术网

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

C++ 将整数转换为字节数组时获取奇数字符,c++,c++11,C++,C++11,我使用以下代码片段将整数转换为向量: const vector int_to_bytearray(const size_t value)无例外{ 无符号字符字节[4]; 字节[0]=(值>>24)&0xFF; 字节[1]=(值>>16)&0xFF; 字节[2]=(值>>8)&0xFF; 字节[3]=值&0xFF; 常量向量返回(字节,字节+字节大小); 返回到_返回; } 如果我传递值196608我得到{'\x00','\x03','\x00','\x00'},这就是我所期望的。如果我通过了3

我使用以下代码片段将整数转换为
向量

const vector int_to_bytearray(const size_t value)无例外{
无符号字符字节[4];
字节[0]=(值>>24)&0xFF;
字节[1]=(值>>16)&0xFF;
字节[2]=(值>>8)&0xFF;
字节[3]=值&0xFF;
常量向量返回(字节,字节+字节大小);
返回到_返回;
}

如果我传递值
196608
我得到
{'\x00','\x03','\x00','\x00'}
,这就是我所期望的。如果我通过了
37
我会得到
{0,0,0,%}
,而这个分数让我很失望。我缺少什么?

您得到的是“%”字符,其代码为37。所以一切都按预期进行。

您如何检查结果?%是ASCII中37的字符。
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;
}