嵌入式编程中的位操作与决策控制
在嵌入式编程领域,位操作和决策控制语句是非常重要的基础内容。下面我们将详细探讨这两方面的知识。
位操作
位操作是将整数视为一组 8 位、16 位或 32 位的位进行处理,这对于嵌入式程序员处理位映射寄存器非常关键。
1. 右移操作示例
int8_t result = 0xA5 >> 2; // Note the lack of "u"
这里 0xA5 的二进制表示为 1010 0101 ,由于是有符号数右移,右侧缺失的位会用符号位填充,最终结果变为 1110 1001 ,即 0xE9 ,对应的十进制数是 -23。
2. 位的含义定义
硬件人员喜欢用位来定义事物。当信号从芯片输出时,它们从硬件上的单个引脚输出,例如 GPIO A - 3 表示 GPIO 寄存器 A 的第 3 位。单个引脚的信号要么为高电平(1),要么为低电平(0),可以用一个位来表示。但程序员看到的信号通常已被捆绑到 8 位、16 位或 32 位的寄存器中。因此,需要一种方法将硬件术语(如“第 3 位”)轻松转换为软件术语(如“0x04”),移位运算符在这种转换中非常有用。
例如,有一个灯板,其硬件规格如下:
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | <
超级会员免费看
订阅专栏 解锁全文
1346

被折叠的 条评论
为什么被折叠?



