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

标签 c byte bit

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

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

谢谢!

最佳答案

这个怎么样?

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但我假设它是您应用程序的一部分。

关于C - 将一个字节的三位与一个字节组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26766344/

相关文章:

c - C 中的重复字符串检测

c - 请求分页上下文中的神秘数字 '63'

python - 如何使用 python 将字节数据转换为整数?

c - 指向c中变量的低字节地址

c - 位操作;将一个 16 位值转换为一个包含 16 个 bool 值的数组? C语言

具有结构工作的 C malloc(1)

c++ - 定义 : is there a way to expand arguments?

java - Java中的字节位置

java - 在 Java 中将字节转换为二进制

c - 按位运算给出不正确的结果