Arduino 运算符

2025年3月17日 | 阅读 7 分钟

运算符在 Arduino 编程中从基础到高级的各个层面都被广泛使用。它在 C、C++、Java 等所有编程概念中都起着至关重要的作用。

运算符用于解决逻辑和数学问题。例如,根据某些模拟电压计算传感器给出的温度。

Arduino 中的运算符分类如下:

  1. 算术运算符
  2. 复合运算符
  3. 布尔运算符
  4. 比较运算符
  5. 按位运算符

算术运算符

在 Arduino 中,有六个基本运算符负责执行数学运算,它们列在下面:

  • 赋值运算符 ( = )

Arduino 中的赋值运算符用于设置变量的值。它与数学中通常使用的等号 (=) 有很大不同。

  • 加法 ( + )

加法运算符用于对两个数字进行加法运算。例如,P + Q。

  • 减法 ( - )

减法用于从一个值中减去另一个值。例如,P - Q。

  • 乘法 ( * )

乘法用于将两个数字相乘。例如,P * Q。

  • 除法 ( / )

除法用于确定一个数除以另一个数的商。例如,P/Q。

  • 取模 ( % )

取模运算符用于计算一个数除以另一个数后的余数。

大多数运算符与数学中使用的常规运算符相似。

让我们通过两个示例来理解这些运算符。

示例 1

考虑下面的代码。

在上面的代码中,我们将两个数字相加的结果赋给了 b,然后再将其打印到控制台。

要查看输出,请点击工具栏上的“上传”和“串口监视器”按钮。

输出: 7

示例 2

请看下面的代码

这里,d = d + 3 不像普通的数学运算。它是一个赋值运算符,其中函数右侧的值首先被计算并赋值给等号左侧的变量。

让我们看下面的图片以获得更好的理解。

Arduino Operators

输出

3
6

同样,我们可以执行乘法、取模和除法。int 变量将存储整数值。例如,20/3 = 6。

如果我们想打印小数,我们需要使用 **float** 而不是 **int**。

例如:

请看下面的代码

输出:6.66

数学运算顺序

让我们了解 Arduino 在执行计算时考虑的运算顺序。

  1. 括号 ( )
  2. 乘法、除法和取模
  3. 加法和减法

如果有多个相邻的运算,它们将从左到右计算。

让我们通过一个例子来理解。

请看下面的代码

输出

6

让我们通过下面的图片了解上述输出是如何产生的。

Arduino Operators

复合运算符

复合运算符一次执行两个或多个计算。

右操作数的结果被赋给左操作数,如上所述。相同的条件将适用于所有列出的复合运算符:

让我们考虑一个变量 **b**。

  • b + +

这里,b = b + 1。这称为**自增运算符**。

  • b +=

例如,b += 4。这意味着,b = b + 4。

  • b - -

这里,b = b - 1。这称为**自减运算符**。

  • b -=

例如,b -= 3。这意味着,b = b - 3。

  • b *=

例如,b *= 6。这意味着,b = b * 6。

  • b /=

例如,b /= 5。这意味着,b = b / 5。

  • b %=

例如,b %= 2。这意味着,b = b % 2。

现在,让我们使用上述运算符处理两个变量 b 和 c。

  • b += c ( b = b + c)
  • b -= c ( b = b - c)
  • b *= c ( b = b * c)
  • b /= c ( b = b / c)
  • b %= c ( b = b % c)

我们可以用任何变量替换 b 和 c。

布尔运算符

布尔运算符包括**非 (! )、逻辑与 ( && ) 和逻辑或 ( || )**。

让我们详细讨论上述运算符。

  • 逻辑与 ( && )

如果条件中的两个操作数都为真,则条件结果为真。

考虑下面的示例

如果两个条件都为真,则以上语句为真。如果任何一个条件为假,则该语句为假。

  • 逻辑或 ( || )

如果条件中的任一变量为真,则条件结果为真。

请考虑以下示例。

如果上述任一条件(a > 0 或 b > 0)为真,则上述语句为真。

  • 非 ( ! )

它用于反转操作数的逻辑状态。

例如,a != 2。

当指定的操作数为 FALSE 时,NOT 运算符返回 1 或 TRUE。它还会反转指定表达式的值。

比较运算符

比较运算符用于比较一个变量与另一个变量的值。

比较运算符列在下面:

  • 小于 ( < )

小于运算符检查左操作数的值是否小于右操作数。如果满足条件,则该语句为真。

考虑下面的代码。

输出:3

在上面的代码中,如果两个语句中的任何一个正确,将打印变量的相应值。这里,只有第一个条件是正确的。因此,将打印 b 的值。

  • 大于 ( > )

小于运算符检查语句左侧的值是否大于右侧的值。如果满足条件,则该语句为真。

例如,a > b。

如果 a 大于 b,则条件为真,否则为假。

  • 等于 ( == )

它检查两个操作数的值。如果值相等,则满足条件。

例如,a == b。

上述语句用于检查 a 的值是否等于 b。

  • 不等于 ( != )

它检查两个指定变量的值。如果值不相等,则条件将是正确的并得到满足。

例如,a != b。

  • 小于或等于 ( <= )

小于或等于运算符检查语句左侧的值是否小于或等于右侧的值。如果满足任一条件,则该语句为真。

例如,a <= b

它检查 a 的值是否小于或等于 b。

  • 大于或等于 ( >= )

大于或等于运算符检查语句左侧的值是否大于或等于该语句右侧的值。如果满足条件,则该语句为真。

例如,a >= b

它检查 a 的值是否大于或等于 b。如果任一条件满足,则该语句为真。

按位运算符

位运算符在**二进制级别**上操作。这些运算符非常易于使用。

有各种位运算符。以下是一些流行的运算符:

  • 位非 ( ~ )

位非运算符作为补码用于反转位。

例如,如果 b = 1,则 NOT 运算符将使 b 的值变为 0。

让我们用另一个例子来理解。

  • 位异或 ( ^ )

如果两个输入相同,则输出为 0,如果两个输入位不同,则输出为 1。

例如:

例如:

  • 位或 ( | )

如果 OR 运算中的两个输入均为 0,则输出为 0。否则,输出为 1。两个输入模式均为 4 位。

例如:

  • 位与 ( & )

如果 AND 运算中的两个输入均为 1,则输出为 1。否则,输出为 0。两个输入模式均为 4 位。

例如:

  • 位左移 ( << )

左操作数按右操作数定义的位数进行移位。

  • 位右移 ( >> )

右操作数按左操作数定义的位数进行移位。


下一主题Arduino 数组