在结构体 struct STRUCT_BITS { Uint16 bit1:1; Uint16 bit2:1; Uint16 bit3:1; Uint16 bit4:1; Uint16 bit5:1; Uint16 bit6:1; Uint16 bit7:1; Uint16 bit8:1; Uint16 bit9:1; Uint16 bit10:1; Uint16 bit11:1; Uint16 bit12:1; Uint16 bit13:1; Uint16 bit14:1; Uint16 bit15:1; Uint16 bit16:1; };的基础上,如何用c语言表示a.bit1-3=b.bit6-8
时间: 2024-03-18 09:38:41 浏览: 150
stm32f107串口发送、接收结构体数据
5星 · 资源好评率100%
可以通过位运算实现。假设a和b都是STRUCT_BITS类型的结构体变量,则可以使用如下代码:
```
a.bit1 = (b.bit6 >> 5) & 0x01;
a.bit2 = (b.bit7 >> 6) & 0x01;
a.bit3 = (b.bit8 >> 7) & 0x01;
```
其中,右移操作符 >> 用于将b的第6、7、8位分别移到a的第1、2、3位,& 0x01 取最低位,即将大于1的值变为1,用于保证a的每个位都只有0或1两种状态。
阅读全文