| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2268 人关注过本帖
标题:求大神帮忙,不用中间值交换变量,此时异或在这里如何解释!
只看楼主 加入收藏
zuylin
Rank: 1
等 级:新手上路
帖 子:9
专家分:2
注 册:2012-7-29
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:6 
求大神帮忙,不用中间值交换变量,此时异或在这里如何解释!
在交换变量时,有种方法如下:a=a^b;b=a^b;a=a^b;请问各位大神这是怎么一步一步转换得来的???

[ 本帖最后由 zuylin 于 2012-7-30 17:52 编辑 ]
搜索更多相关主题的帖子: 交换 如何 
2012-07-30 17:40
madfrogme
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:21
帖 子:1160
专家分:1106
注 册:2009-6-24
收藏
得分:1 
http://graphics.stanford.edu/~seander/bithacks.html

The quieter you become, the more you can hear
2012-07-30 17:52
silent_world
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:258
专家分:1138
注 册:2011-9-24
收藏
得分:1 
一个数异或本身等于0,你把下面的看懂了,原理是一样的。
a=a+b;b=a-b;a=a-b
2012-07-30 18:23
御版美钱
Rank: 2
等 级:论坛游民
帖 子:5
专家分:12
注 册:2012-7-20
收藏
得分:1 
异或不同为1     
a=111 b=100
 a=a^b=011
 b=a^b=011^100=111
a=a^b=011^111=100
2012-07-30 18:26
longlong89
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:小飞侠
威 望:6
帖 子:1043
专家分:2754
注 册:2009-8-18
收藏
得分:1 
告诉你 一个数的异或的异或等于本身
比如:n^123^123=n

想象力征服世界
2012-07-30 19:23
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:1 
呃,这种问题下次就别在短信息里问我了。

简单解释一下

1.异或的定义
0^0 = 0
0^1 = 1
1^0 = 1
1^1 = 0

2.异或满足交换律
a^b = b^a
特殊的
0^a = a^0 = a
1^a = a^1 = ~a(表示a取反,本来该是a头上一横)
a^a = 0
a^(~a) = 1

3.异或满足结合律
(a^b)^c = a^(b^c)

由上面的定律可以简单地推出
a^b^a = a^a^b = 0^b = b
a^b^b = a^0 = a

明白了吗?

重剑无锋,大巧不工
2012-07-30 20:16
zuylin
Rank: 1
等 级:新手上路
帖 子:9
专家分:2
注 册:2012-7-29
收藏
得分:0 
回复 6楼 beyondyf
谢谢斑竹,明白了!0与任何数异或都是自身,且均是按位异或!!
2012-07-31 21:49
快速回复:求大神帮忙,不用中间值交换变量,此时异或在这里如何解释!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025475 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved