[MCU] 一个异或运算的经验

[复制链接]
749|12
 楼主| huangchui 发表于 2019-9-22 16:58 | 显示全部楼层 |阅读模式
参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。
即:
   0^0 = 0,
      1^0 = 1,
      0^1 = 1,
      1^1 = 0

例如:10100001^00010001=10110000
午夜粪车 发表于 2019-9-22 17:03 | 显示全部楼层
按位异或的3个特点:
(1) 0^0=0,0^1=1  0异或任何数=任何数
(2) 1^0=1,1^1=0  1异或任何数-任何数取反
(3)              任何数异或自己=把自己置0
zhanghqi 发表于 2019-9-22 17:06 | 显示全部楼层

多谢楼主分享
heweibig 发表于 2019-9-22 17:12 | 显示全部楼层
自己总结的?有更深层的吗?
heweibig 发表于 2019-9-22 17:16 | 显示全部楼层
楼主可以讲解一下异或运算的深层次的东西
dengdc 发表于 2019-9-22 17:19 | 显示全部楼层
比如状态判断时候的应用!
lizye 发表于 2019-9-22 17:24 | 显示全部楼层
赞一个。这个总结很好。看看430的位操作,取反就是用的异或。
heweibig 发表于 2019-9-22 17:28 | 显示全部楼层

这是非常基本的操作啊,单片机长须中很多的数据校验就采取的是异或方式
internally 发表于 2019-9-23 15:15 | 显示全部楼层
异或运算应该还有一些不错的用法,可以开发一下
ayb_ice 发表于 2019-9-23 16:11 | 显示全部楼层
异或结果为1在工程上可以表示为
有变化或不同,如果知道其中一个输入,根据结果可以还原另一个输入,这是与或逻辑做不到的,

反之表示没有变化,或相同
liliang9554 发表于 2019-9-24 21:21 | 显示全部楼层
楼上各位,各有心得!
不错不错

2楼的都有口诀了!
 楼主| huangchui 发表于 2019-9-24 21:26 | 显示全部楼层

凑个热闹,用异或交换两个数x,y:
x ^= y, y^=x, x^=y. 不需要借助额外的变量。
午夜粪车 发表于 2019-9-24 21:29 | 显示全部楼层

结贴了,多谢大家讨论这么多哈,呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

918

主题

12323

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部