复制到字节向量的函数会反转值

Not*_*ble 2 c++ byte vector endianness

嘿,我已经编写了一个函数来将任何变量类型复制到一个字节向量中,但每当我插入一些东西时它都会被反向插入.

这是代码.

template <class Type>
void Packet::copyToByte(Type input, vector<uint8_t>&output)
{
    copy((uint8_t*) &input, ((uint8_t*) &input) + sizeof(Type), back_inserter(output));
}
Run Code Online (Sandbox Code Playgroud)

现在,每当我添加例如值为0x2f1f的uint16_t时,它将被插入为1f 2f而不是预期的2f 1f.

我在这做错了什么?

问候,Xeross

Jam*_*lis 8

如果您使用的是小端机器(例如,x86),则字节将显示为反转(即,较低阶字节将出现在较高阶字节之前).

如果你真的想要颠倒字节的顺序,你可以使用std::reverse.