目录
一,介绍
在本例程中,我们将在arduino核心上使用AND位运算符。在ESP32 上面运行。
请注意,这是一个C/C++ 的运算符,这意味着我们可以在arduino 支持的其他微控制器的程序中以及通用的C/C++ 程序中使用它。
在二进制中,AND 运算符是双目运算符。产生的结果是一位。如果输入位均为1,则结果为1,对于其他输入组合。结果都为0。你可以在图1的真值表中查询。以及所有的输入组合。
在C/C++中,当我们按位AND运算符应用于两个数时,他将二进制AND应用于同一位置和的每对位。因此我们有二进制数
00001111和11110011,我们将以00000011结束。
此运算符的语法如下所示,我们将AND运算符应用于x和y。
二,硬件
- ESP32开发板
三,电路图
无
四,代码设计
本教程的代码非常简单,我们将在arduino IDE上编写。首先,我们打开一个串行连接来输出我们程序的结果。
Serial.begin(115200);
然后,我们将声明两个数字并用他们来进行按位AND运算符。先,我们将声明值10,它以二进制表示为00001010。请注意,这仅对应于最低有效字节,因为组成整数值的其他字节的其余位为零。
int x = 10;
就像一个注释,在两个平台中,整数用4个字节表示。您可以使用sizeof函数确认这一点,该函数应用于 int 数据类型。
现在我们将声明数字3,它对应于二进制的00000011。
int y = 3;
最后,我们将打印将按位AND运算符应用于这两个数字的结果。预期结果是00000010,对应于十进制数2。
int z = x & y;
Serial.println(z);
最终的源代码如下所示。
void setup() {
Serial.begin(115200);
int x = 10;
int y = 3;
int z = x & y;
Serial.println(z);
}
void loop() {
}
五,代码测试
要测试代码,只需编译它并使用Arduino IDE将其上传到您的设备。然后,打开串行监视器。你应该得到类似于图2的输出,它输出值2,正如我们之前分析的那样。
为了便于确认按位二进制运算,下面的图3是我们使用的数字的表示,以二进制表示。