当前位置:网站首页>【Arduino】关于“&”和“|” 运算-----多个参数运算结果异常的问题解决
【Arduino】关于“&”和“|” 运算-----多个参数运算结果异常的问题解决
2022-08-03 05:14:00 【与太阳有关_】
一、记录原因
我在测我的红外接收器返回结果(结果是用数组来存的,下标与红外接收器的编号是一一对应的)。
出现的问题:不管我的红外接收口有无接收到信号, 我发现它一直会执行 if 下的语句。
即证明 if 里的语句不是我所想要的结果。所以我就做了个小测试。
解决:在Arduino中,多参数运算& 或 | 时,需要把结果赋值给新的变量,否则容易出现异常。


二、测试代码
a.三个及以下参数(正常)
int n,m,a,b;//运算数
void setup()
{
Serial.begin(9600); // The serial port is initialized with baud rate of 9600 bytes/SEC
}
void loop()
{
n = 1; m = 1; a = 0;
Serial.print("n & m & a & b = ");
Serial.println(n & m & a );
if(n & m & a == 0)
Serial.println("you are in here");
else
Serial.println("you are fail in here");
}

b.四个及以上参数(异常)
int n,m,a,b;//运算数
void setup()
{
Serial.begin(9600); // The serial port is initialized with baud rate of 9600 bytes/SEC
}
void loop()
{
n = 1; m = 1; a = 0; b = 1;
Serial.print("n & m & a & b = ");
Serial.println(n & m & a & b);
if(n & m & a & b == 0)
Serial.println("you are in here");
else
Serial.println("you are fail in here");
}

c.多个参数出现异常的解决方法
int n,m,a,b;//运算数
int result; //结果
void setup()
{
Serial.begin(9600); // The serial port is initialized with baud rate of 9600 bytes/SEC
}
void loop()
{
n = 1; m = 1; a = 0; b = 1;
Serial.print("n & m & a & b = ");
Serial.println(n & m & a & b);
result = n & m & a & b;
if(result == 0)
Serial.println("you are in here");
else
Serial.println("you are fail in here");
}

笔记仅供自学,用来回看复习,不一定适合你,如有错误请指出。
边栏推荐
猜你喜欢
随机推荐
TypeError: Cannot read property ‘xxxx‘ of undefined的解决方法
MySQL 索引检索原理和B+Tree数据结构详解
0.ROS常用命令
Flask,1-2
私有变量(private) 【详细+易懂】
轨迹(形状)相似性判断与度量方法
-角谷猜想-
-钞票兑换-
【反弹shell与提权】
斐讯K2路由编译Padavan华硕固件和心得
对角矩阵(diagonal matrix)
C-PHY速率
Pr第四次培训笔记
JDBC与连接池
ss-5.consul服务端+生产者+消费者
传说中可“免费白拿”的无线路由器 - 斐讯 K2 最简单刷 breed 与第三方固件教程
【数组】arr,&arr,arr+1,&arr+1以及内存单元的占用
1054 求平均值 (20 分)
机器码介绍
初步认识ZK





![7.24[C语言零基础 知识点总结]](/img/b8/3abcee495e70c9ffffc671f2b7d9b1.png)

