向 uint32 的第一个字节添加一个字节

Adding a byte to the first byte of an uint32

我正在用 c 中的按位运算符玩一点。

我有以下内容:

uint32 myValue = 0x00ffffff;

我想在 myValue 的第一个字节中添加一个值为 0x33 的字节,以便在末尾有这个:

myValue = 0x33ffffff;

我正在尝试使用:

myValue = ((myValue & 0xff) << 0) | (0x33u & 0xff);

我哪里做错了?

试试这个:

int main() {
    uint32_t myValue = 0x00ffffff;
    myValue = myValue | (0x33u << 24);
    printf("%x\n", myValue); //====> 0x33ffffff
}