一个异或运算的经验

[复制链接]
1101|10
 楼主| 午夜粪车 发表于 2017-8-19 16:08 | 显示全部楼层 |阅读模式
参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。
即:
   0^0 = 0,
      1^0 = 1,
      0^1 = 1,
      1^1 = 0

例如:10100001^00010001=10110000
 楼主| 午夜粪车 发表于 2017-8-19 16:10 | 显示全部楼层
按位异或的3个特点:
(1) 0^0=0,0^1=1  0异或任何数=任何数
(2) 1^0=1,1^1=0  1异或任何数-任何数取反
(3)              任何数异或自己=把自己置0
zhanghqi 发表于 2017-8-19 16:12 | 显示全部楼层
多谢楼主分享
heweibig 发表于 2017-8-19 16:17 | 显示全部楼层
自己总结的?有更深层的吗?
heweibig 发表于 2017-8-19 16:20 | 显示全部楼层
楼主可以讲解一下异或运算的深层次的东西
dengdc 发表于 2017-8-19 16:22 | 显示全部楼层
比如状态判断时候的应用!
lizye 发表于 2017-8-19 16:25 | 显示全部楼层
赞一个。这个总结很好。看看430的位操作,取反就是用的异或。
heweibig 发表于 2017-8-19 16:27 | 显示全部楼层
这是非常基本的操作啊,单片机长须中很多的数据校验就采取的是异或方式
liliang9554 发表于 2017-8-19 16:32 | 显示全部楼层
楼上各位,各有心得!
不错不错

2楼的都有口诀了!
huangchui 发表于 2017-8-19 16:34 | 显示全部楼层

凑个热闹,用异或交换两个数x,y:
x ^= y, y^=x, x^=y. 不需要借助额外的变量。
 楼主| 午夜粪车 发表于 2017-8-19 16:38 | 显示全部楼层
结贴了,多谢大家讨论这么多哈,呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

867

主题

10194

帖子

3

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