0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机的逻辑运算符和位运算符是什么?数字电路中的常用符号

GReq_mcu168 来源:未知 作者:易水寒 2018-10-03 08:50 次阅读

首先,在“逻辑”这个概念范畴内,存在真和假这两个逻辑值,而将其对应到数字电路或 C 语言中,就变成了“非 0 值”和“0 值”这两个值,即逻辑上的“假”就是数字电路或C 语言中的“0”这个值,而逻辑“真”就是其它一切“非 0 值”。然后,我们来具体分析一下几个主要的逻辑运算符。我们假定有 2 个字节变量:A 和 B,二者进行某种逻辑运算后的结果为 F。以下逻辑运算符都是按照变量整体值进行运算的,通常就叫做逻辑运算符:

逻辑运算符 说明
&& 逻辑与 F = A && B,当 A、B 的值都为真(即非 0 值,下同)时,其运算结果 F为真(具体数值为1,下同);当 A、B 值任意一个为假(即 0,下同)时,结果 F 为假(具体数值为 0,下同)。
|| 逻辑或 F = A || B,当 A、B 值任意一个为真时,其运算结果 F 为真;当 A、B 值都为假时,结果 F 为假。
! 逻辑非 F = !A,当 A 值为假时,其运算结果 F 为真;当 A 值为真时,结果 F 为假。

以下逻辑运算符都是按照变量内的每一个位来进行运算的,通常就叫做位运算符:

逻辑运算 说明
& 按位与 F = A & B,将 A、B 两个字节中的每一位都进行与运算,再将得到的每一位结果组合为总结果 F,例如 A = 0b11001100,B = 0b11110000,则结果 F 就等于 0b11000000。
| 按位或 F = A | B,将 A、B 两个字节中的每一位都进行或运算,再将得到的每一位结果组合为总结果 F,例如 A = 0b11001100,B = 0b11110000,则结果 F 就等于 0b11111100。
~ 按位取反 F = ~A,将 A 字节内的每一位进行非运算(就是取反),再将得到的每一位结果组合为总结果 F,例如 A = 0b11001100,则结果 F 就等于 0b00110011;这个运算符我们在前面的流水灯实验里已经用过了,现在再回头看一眼,是不是清楚多了。
^ 按位异或 异或的意思是,如果运算双方的值不同(即相异)则结果为真,双方值相同则结果为假。在 C 语言里没有按变量整体值进行的异或运算,所以我们仅以按位异或为例,F = A ^ B,A = 0b11001100,B = 0b11110000,则结果 F 就等于 0b00111100。

我们今后要看资料芯片手册的时候,会经常遇到一些电路符号,图 5-1 所示就是数字电路中的常用符号,知道这些符号有利于我们理解器件的逻辑结构,尤其重点认识图 5-1 中的国外流行图形符号。在这里我们先简单看一下,如果日后遇到了可以到这里来查阅。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    5998

    文章

    43960

    浏览量

    620677
  • C语言
    +关注

    关注

    180

    文章

    7524

    浏览量

    128109
  • 数字电路
    +关注

    关注

    192

    文章

    1393

    浏览量

    79738
  • 逻辑运算
    +关注

    关注

    0

    文章

    45

    浏览量

    9705

原文标题:单片机逻辑电路与逻辑运算

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【跟我学单片机C语言】详解关系运算符

    关系运算符,同样我们也并不陌生。单片机C语言中有六种关系运算符,这些东西同样是在我们小时候学算术时就已经学习过了的:>大于<小于>= 大于等于<= 小于等于== 等于!= 等于或者你是个非 C语言
    发表于 12-07 13:43

    【跟我学单片机C语言】详解运算符和表达式的运算符

    【跟我学单片机C语言】详解运算符和表达式的运算符学过汇编的朋友都知道汇编对位的处理能力是很强的,但是单片机C语言也能对
    发表于 12-07 13:51

    C语言单片机第七课 运算符和表达式(关系运算符)

    第七课 运算符和表达式(关系运算符)关系运算符,同样我们也并不陌生。单片机C语言中有六种关系运算符,这些东西同样是在我们小时候学算术时就已经
    发表于 10-21 09:38

    C语言单片机第八课 运算符和表达式(运算符)sylar

    第八课 运算符和表达式(运算符)sylar 学过汇编的朋友都知道汇编对位的处理能力是很强的,但是单片机C语言也能对运算对象进行按
    发表于 10-21 09:39

    炼狱传奇-移位和运算符之战

    。 总结:移位运算符的使用时,左移可以看成是乘以2,右移可以看成是除以2。所以移位运算符用在计算,代替乘法和除法。尤其是除法,使用移位的方式,可以节省资源。2.
    发表于 04-30 09:43

    【FPGA】VHDL 语言的运算符有哪些?计算的优先级是怎样的?

    在 VHDL 语言中,常用运算符逻辑运算(Logic)、关系运算(Relational)、算术运算(Arithmetic)和移位
    发表于 09-12 09:51

    【梦翼师兄今日分享】 常见的关系运算符(移位运算符)

    立即学习>>梦翼师兄FPGA培训(视频加板卡),手把手带你入门FPGA写在前面的话移位运算符是双目运算符,将运算符左边的操作数左移或右移指定的位数,用0来补充空闲。如果右边操作数的
    发表于 12-17 10:45

    【梦翼师兄今日分享】 常见的关系运算符运算符

    立即学习>>梦翼师兄FPGA培训(纯视频),手把手带你入门FPGA写在前面的话运算符是将多个小的表达式合并形成一个大的表达式,用符号{}来实现多个表达式的连接运算,各个表达式之间用
    发表于 12-19 09:38

    Java基础之Java运算符

    逻辑运算符、条件运算符运算符。如下图所示: 算术运算符 //注意区分是否为字符串连接System.out.println(
    发表于 05-18 15:39

    逻辑运算符是什么

    逻辑运算符:与或非条件结构if -else及其嵌套循环结构whilefordo-while
    发表于 07-14 07:50

    逻辑电路逻辑运算符

    一、逻辑电路逻辑运算逻辑运算符:(1)按变量整体值进行运算逻辑与(&&)逻辑或(||)
    发表于 07-16 10:51

    【通信专栏】附录一:STM32单片机C语言基础/逻辑运算/按运算/结构体/宏定义 精选资料分享

    单片机开发,总有一些C语言基础知识是常常用到的而我们又不易掌握的,今天以STM32单片机为例,总结一下那些常用的C语言基础知识,例如
    发表于 07-21 08:28

    运算符的相关资料推荐

    运算符1、算数操作运算符+、-、*、/、%加法:A+B, AB最好是同类型乘除:乘法在很多CPU并不支持,乘除法能不用就不用,可能会使执行变差求模/求余数:n%m=res[0~(m-1)]求模
    发表于 12-24 06:13

    2.7 python运算符

    运算符:算术运算符比较(关系)运算符赋值运算符逻辑运算符
    发表于 02-21 16:43

    Bitwise 逻辑运算符进行设计

    锁定。  AND Bitwise 运算符  摄像头滑块的主要位运算符是 AND。该运算器使用 C 语言编程的安培 (&) 符号,使
    发表于 04-02 17:39