在 Arduino 中清除/设置数字的特定位
arduinoarduino boardsarduino idearduino programming language
当您深入研究高级固件时,您会处理大量寄存器,这些寄存器的特定位需要根据您的使用情况进行设置或清除。Arduino 具有内置函数来执行此操作。
语法
bitSet(x, index)
并且,
bitClear(x, index)
其中 x 是必须设置/清除其位的数字,索引是位的位置(0 表示最低有效位或最右边的位)。此函数在原地更改数字 x,并返回更新后的 x 值。
请注意,设置一个位意味着将其值设置为 1,清除它意味着将其值设置为 0。
示例
以下示例说明了这些函数的用法 −
void setup() { // 将您的设置代码放在此处,运行一次: Serial.begin(9600); Serial.println(); int x = 6; Serial.println(x); bitSet(x,0); Serial.println(x); bitClear(x,2); Serial.println(x); bitClear(x,3); Serial.println(x); } void loop() { // 将您的主代码放在此处,以便重复运行: }
输出
串行监视器输出如下所示 −
如您所见,我们从数字 6 (0b0110) 开始。
然后我们设置其第 0 位,得到 (0b0111),对应于 7。
然后,我们清除其第 2 位,得到 (0b0011),对应于 3。
然后我们清除其第 3 位,已经是 0。因此,我们再次得到 (0b0011),它对应于 3。
串行监视器输出按照我们刚刚描述的确切顺序显示这些数字。