为了确定Arduino编程中的程序或代码的流程,编译器应该了解如何执行多种操作,这些操作可以是数学或逻辑的。为此,需要使用不同类型的运算符。在这篇文章中,我们将简要讨论复合运算符。
什么是Arduino中的复合运算符
在Arduino编程中,运算符是非常重要的,因为它们影响着程序的输出。复合这个词意味着两个或多个事物的复合。同样地,复合运算符是两个运算符的复合。换句话说,要在一个语句中执行两个操作,就要使用复合运算符。基本上有九种类型的复合运算符,将详细讨论。
复合乘法运算符(*=)
这个运算符有两个运算符,一个是乘法运算,另一个是用于给任何变量或常量赋值的运算符。复合乘法运算符可以通过使用与运算符 "*="相等的星号来使用。为了存储运算结果,不需要第三个变量。结果可以存储在两个被乘的变量中的任何一个。
例如,如果我们假设有两个数据类型为整数的变量A和B,在Arduino编程中,如果我们必须使用复合乘法运算符将它们相乘。这里A的值是4,B的值是2,所以乘法的结果将是8。
int a = 4;
int b = 2
void setup() {
Serial.begin(9600);
Serial.print("Compound multiplication operator:");
a *= b;
Serial.println(a);
}
void loop(){
}
输出
复式除法运算符(/=)
复合除法运算符是一个赋值运算符**(=)和除法运算符(/)的组合。在Arduino编程中,这个运算符可以通过使用带等号的正斜杠"/="来使用。**在执行除法后,结果被存储在左边的变量中。
例如,如果两个具有浮动数据类型或整数数据类型的变量要使用复合除法运算符来进行除法。假设变量A的值为4,变量B的值为2,那么除法的答案将是2。
int a = 4;
int b = 2;
void setup() {
Serial.begin(9600);
Serial.print("Compound division operator:");
a /= b;
Serial.println(a);
}
void loop(){
}
输出
复合加法运算符(+=)
为了执行求和的数学运算,并将结果分配给其中一个变量,我们使用了复合加法运算符。这个运算符用**(+=)**表示。假设有两个变量A、B,复合加法运算符要用Arduino编程来应用。例如,如果变量A的值为4,变量B的值为2,那么应用加法运算的结果将是6。
int a = 4;
int b = 2;
void setup() {
Serial.begin(9600);
Serial.print("Compound addition operator:");
a += b;
Serial.println(a);
}
void loop(){
}
输出
复合减法运算符(-=)
当Arduino编程中需要对两个变量进行减法时,减法运算符和赋值运算符被用来存储减法运算符的结果。它们一起构成了复合减法运算符,可以通过使用**"-="**符号来使用。进一步假设变量A的值是4,变量B的值是2,在Arduino编程中应用复合减法运算符,结果将是2。
int a = 4;
int b = 2;
void setup() {
Serial.begin(9600);
Serial.print("Compound division operator:");
a -= b;
Serial.println(a);
}
void loop(){
}
输出
递增(++)和递减(-)运算符
递增运算符将值增加1,然而递减运算符将任何变量的值减少1。递增运算符可以用**"++"符号表示,而递减运算符可以用"-"**符号。
例如,假设一个变量i的值是1,而j的值是2,增量运算符应用于变量i,输出将是2。然而,递减运算符应用于变量j,递减的结果将是1。
int i = 1;
int j = 2;
void setup() {
Serial.begin(9600);
Serial.print("Compound increment operator:");
i++;
Serial.println(i++);
Serial.print("Compound decrement operator:");
j--;
Serial.println(j--);
}
void loop(){
}
输出
复合摩尔运算符(%=)
在Arduino编程中,要找到两个不相等的数字的余数,并将答案分配给其中一个变量,就要用到复合模运算符。要使用这个运算符,需要使用符号**"%="**。为了进一步解释Arduino中复合模运算符的使用,我们可以举一个例子;假设一个变量A的值是4,B的值是3,因为它们不能完全分割,所以通过模运算得到的余数将是1。
int a = 4;
int b = 3;
void setup() {
Serial.begin(9600);
Serial.print("Compound Modulo operator:");
a %= b;
Serial.println(a);
}
void loop() {
}
输出
复合位数OR运算符(|=)
这个复合运算符是用**"|="来表示的。**该运算符首先将整数转换为二进制形式,然后对转换后的整数的二进制进行逐位操作。
假设变量A的值是4,它的二进制是(0100),同样,变量B的值是2,它的二进制是(0010),如果使用复合位运算器,那么它将对A和B的每个位进行OR运算,只有当两个输出都是0时,OR运算器的输出才是0。在这种情况下,复合OR运算的结果将是(0110),即6。
int a = 4;
int b = 2;
void setup() {
Serial.begin(9600);
Serial.print("Compound Bitwise OR operator:");
a |= b;
Serial.println(a);
}
void loop() {
}
输出
复合位智和运算符(&=)
另一个可以在Arduino编程中用于执行逻辑操作的布尔运算符是AND运算。另一个与AND运算符一起使用的运算符是赋值运算符。将AND运算符和赋值运算符结合起来,就形成了一个复合位数AND运算符。要在Arduino编程中使用这个复合运算符,使用的符号是"&="。像OR运算符一样,AND运算符也是逐位操作。然而,只有当两个输入都是1时,AND运算符的输出才是1,反之亦然。
例如,如果复合AND运算符应用于变量a和b,其二进制数为(0100)的4和(0010)的2,结果将是(0000),即0。同样,另外两个变量c和d的值为5(0101)和7(0111),AND操作应用于这两个值,c和d的结果是5(0101)。
int a = 4;
int b = 2;
int c= 5;
int d= 7;
void setup() {
Serial.begin(9600);
Serial.print("Compound Bitwise AND operator on a and b :");
a &= b;
Serial.println(a);
Serial.print("Compound Bitwise AND operator on c and d :");
c &= d;
Serial.println(c);
}
void loop() {
}
输出
总结
Arduino编程中使用的复合运算符是由两个运算符组成的,一个是分配运算符,另一个是布尔运算符或任何数学运算符。复合运算符的意义在于,它们被用于Arduino编程中所需要的逻辑和算术运算,并且通过使用分配函数将结果直接存储到左边的操作数。本文简要讨论了Arduino编程中常用的九种不同类型的复合运算符,并举例说明了这些运算符的用法。