嘿,我写了一个函数将任何变量类型复制到一个字节向量中,但每当我插入一些东西时,它都会被反向插入。
这是代码。
template <class Type>
void Packet::copyToByte(Type input, vector<uint8_t>&output)
{
copy((uint8_t*) &input, ((uint8_t*) &input) + sizeof(Type), back_inserter(output));
}
现在每当我添加一个值为0x2f1f的uint16_t时,它就会被插入为1f 2f而不是预期的2f 1f。
我在这里做错了什么?
问候,Xeross
答案 0 :(得分:8)
如果你在little-endian机器上(例如,x86),字节将显示为反转(即,低位字节将出现在高位字节之前)。
如果您真的想要颠倒字节的顺序,可以使用std::reverse
。
答案 1 :(得分:4)
你没有做错任何事。您正在使用小型端机(例如Pentium)。在这些上,多字节值的较低有效字节存储在最小地址处。因此结果。
答案 2 :(得分:0)