在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: PayPal

[讨论] 对于1bit信号,例如复位信号取反,使用 ~ 还是 !

[复制链接]
发表于 2023-10-12 14:45:14 | 显示全部楼层
取反应该是~
发表于 2023-10-20 11:44:27 | 显示全部楼层
两者综合出来的电路是一样的,用!和~旨在方便理解代码。 一般!用于表示逻辑非,~用于表示取反。例如在if中使用时,如果想表示这个条件不满足的情况下发生,就用!, 如果表示这个信号为0时,条件发生,就用~。 看你个人习惯了。
发表于 2023-10-26 11:57:52 | 显示全部楼层
这个问题我也考虑过,先说结论,应该用"!"

if...else 是个条件判断,当条件为真的时候,完成if的之路,否则完成else的之路
那么如何判断条件为真?
当使用!时,!本身是逻辑运算符,!a的结果是true or false,那么if直接根据true or flase进行操作
当使用~时,~是算数运算符,会将a取反,得到一个数字,然后这里会用到一个隐含的运算,即数字0等价于false,数字1等价于true,经过这个隐含的运算,然后根据true和false的结果if继续往下走。得到的结果和上面相同。

对于多bit数字,逻辑运算和算数运算的结果可能是不一样的。所以这个写法不会用到多bit的判断

反之,如果是作为单比特数据使用,那么建议是用~,道理同上。虽然逻辑true可以被隐含推算为数据1,但是尽量不要依赖系统的隐含假设,而是在自己写代码的时候就清楚的知道这个代码是逻辑运算还是数据运算。


 楼主| 发表于 2023-10-26 15:38:36 | 显示全部楼层


kejiazhu 发表于 2023-10-26 11:57
这个问题我也考虑过,先说结论,应该用"!"

if...else 是个条件判断,当条件为真的时候,完成if的之路,否 ...


有自己的思考就是不一样
发表于 2023-11-11 15:30:15 | 显示全部楼层
混用的
发表于 2023-12-4 13:55:51 | 显示全部楼层
哇 这么讲究的吗
发表于 2023-12-5 10:56:16 | 显示全部楼层
单比特感觉这俩都一样吧,最终结果没啥区别
发表于 2023-12-18 13:09:34 | 显示全部楼层


767781537 发表于 2022-7-29 17:46
导师教的,作为条件使用的话用! , 作为最终的输出信号的话用~ , 但是我还没感到区别 ...


学到了
发表于 2024-1-12 09:26:43 | 显示全部楼层
一个是位操作,一个是逻辑操作,10楼说的对
发表于 2024-1-15 09:58:27 | 显示全部楼层


767781537 发表于 2022-7-29 17:46
导师教的,作为条件使用的话用! , 作为最终的输出信号的话用~ , 但是我还没感到区别 ...


判別的好方法
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-25 15:37 , Processed in 0.022555 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表