矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: ycx2002

请教一下这两句话是不是一样的功能…

[复制链接]
     
发表于 2024-2-16 22:07:34 | 显示全部楼层
本帖最后由 t3486784401 于 2024-2-16 22:09 编辑
ycx2002 发表于 2024-2-16 21:48
谢谢回答,我是这么理解的,第一部分的语句是先判断[4]!=0xff如果不等于0xff为真,为真就是1   然后判 ...


你的理解有误。

两个都不等于,才是真,继续 while 等待; 只要有一个相等,就是假,导致退出 while 等待。

如图,这句话你理解错误了。看样子逻辑能力有待锻炼:

2024-02-16_220906.png
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-2-16 22:10:54 | 显示全部楼层
iffi123 发表于 2024-2-16 21:53
首先你要知道while ()语句的含义,括号里面的逻辑关系运算是一个整体,它的结果要么TRUE要么FALSE, 是不能 ...

感谢回答,你说得对,while后面表达式中&&两边都为真才能为真,有一个为假或都为假,整个表达式的结果就为假。是这样的逻辑啊…
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-2-16 22:17:52 | 显示全部楼层
t3486784401 发表于 2024-2-16 22:07
你的理解有误。

两个都不等于,才是真,继续 while 等待; 只要有一个相等,就是假,导致退出 while ...

两个都不等于,才是真,继续 while 等待; 只要有一个相等,就是假,导致退出 while 等待


我就是这个逻辑,是我表述的有问题

我是先判断数组内最后一个元素是否是ff,也就表示数组接受完毕,再去判断第一个序号是不是正确的…
回复 支持 反对

使用道具 举报

     
发表于 2024-2-16 22:19:12 | 显示全部楼层
本帖最后由 scoopydoo 于 2024-2-16 22:24 编辑
ycx2002 发表于 2024-2-16 22:04
感谢解答

前一个的逻辑是 receive[4] 等于 0xff 或者 receive[0] 等于 0x03 时执行后续的语句。


建议补习一下简单的逻辑运算知识:

“非与” 等于 “或非”

_    _    _____
A x B = A + B

"(不是甲)且(不是乙)"  等于  “不是(甲或乙)”
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-2-16 22:24:02 | 显示全部楼层
t3486784401 发表于 2024-2-16 22:07
你的理解有误。

两个都不等于,才是真,继续 while 等待; 只要有一个相等,就是假,导致退出 while ...

明白了,可能还没有接收到数组的最后一个元素就已经开始逻辑与运算了,或者接收到最后一个元素后进行逻辑与运算时数组的其他元素被新发送的数据覆盖了…就是这样!
谢谢老师的赐教!太感谢了!
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-2-16 22:39:58 | 显示全部楼层
t3486784401 发表于 2024-2-16 22:07
你的理解有误。

两个都不等于,才是真,继续 while 等待; 只要有一个相等,就是假,导致退出 while ...

太谢谢您了!是我钻牛角尖了,经您点拨茅塞断开!谢谢老师的赐教。感谢!我是个新手,向您学习!
回复 支持 反对

使用道具 举报

     
发表于 2024-2-16 22:40:04 | 显示全部楼层
如果你有串口中断的话,是不是就错了?先判断第一是否正确,然后等待,然后第二个正确的就来了,其实此时也许第一个是错误的。
所以写程序要养成习惯,有逻辑关系的直接一句话写出来。否则将来开发大项目的时候,有搞不清的BUG
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-2-16 22:41:42 | 显示全部楼层
scoopydoo 发表于 2024-2-16 22:19
建议补习一下简单的逻辑运算知识:

“非与” 等于 “或非”

谢谢老师指教,是我钻牛角尖了,已经搞清楚了。谢谢!我是新手,以后还需继续学习!谢谢!
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-2-16 22:43:30 | 显示全部楼层
快乐毛毛虫 发表于 2024-2-16 22:40
如果你有串口中断的话,是不是就错了?先判断第一是否正确,然后等待,然后第二个正确的就来了,其实此时也 ...

谢谢老师回复,已经搞清楚原因了,是我钻牛角尖了。谢谢老师指教
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-2-16 22:45:52 | 显示全部楼层
快乐毛毛虫 发表于 2024-2-16 22:40
如果你有串口中断的话,是不是就错了?先判断第一是否正确,然后等待,然后第二个正确的就来了,其实此时也 ...

我是个新手,慢慢学习,慢慢积累,有时候想破脑袋也想不通的问题,经坛友们点拨豁然开朗,呵呵,慢慢积累吧!谢谢!
回复 支持 反对

使用道具 举报

     
发表于 2024-2-18 20:56:55 | 显示全部楼层
这句话里面还有原子操作的隐患。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2024-5-3 00:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表