C - 将一个字节的las三位与一个字节组合

时间:2014-11-05 20:19:46

标签: c byte bit

让我说我有二进制字节:f = 01010111,然后我会这样做:f<< 3所以我期待:10111000,此时我将有另一个字节,让我们说另一个是10111001,我想附加它们,结果是1011110111001.基本上,我想要的是从第一个字节的最后三位获得第二个字节的交换。

我不知道我怎么能这样做,你能帮帮我吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

这个怎么样?

uint8_t f = 0x57; // 0b01010111
f <<= 3;          // now 10111000
uint8_t g = 0xB9; // 0b10111001
uint16_t out = (f << 5) | g;
printf("0x%04X\n", out);

> 0x17B9          // 0b1011110111001

我不理解中级<< 3,但我认为它是您申请的一部分。