| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1579 人关注过本帖
标题:下面这个异或运算怎么理解?
只看楼主 加入收藏
侠客cp
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-11-15
收藏
 问题点数:0 回复次数:6 
下面这个异或运算怎么理解?
{
result=0;
for(i=0;i<n;i++){
scanf("%d",&m);
result^=m;
}
2016-12-19 18:50
侠客cp
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-11-15
收藏
得分:0 
^=是C/C++的一个符合运算符。表示异或赋值。
如:
a^=b相当于:a=a^b;
异或就是两个数的二进制形式,按位对比,相同取0,不同取一.
上面的不理解。。。。。
2016-12-19 18:56
侠客cp
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-11-15
收藏
得分:0 
哪位大神知道,求帮助。
2016-12-19 18:57
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:0 
将result和m按位做异或运算,结果赋给result. 因为result是0,这种运算实际上就是把m赋给予result.
比如m=5,二进制表示为"101",而result是0。将"101"和"000"进行位异或运算,第一位和第三位不一样,要做置位处理,第二位两个数一样,不置位,这样结果仍然是"101",即5
2016-12-19 22:09
damzkk
Rank: 2
等 级:论坛游民
威 望:2
帖 子:18
专家分:37
注 册:2016-11-7
收藏
得分:0 
学习了。问题是要输入n个数异或,那是什么意义呢?
2016-12-24 17:04
小木木囡
Rank: 1
等 级:新手上路
威 望:1
帖 子:9
专家分:5
注 册:2016-11-29
收藏
得分:0 
首先,按位运算就是不影响其他数的运算,不会有进位或者退位运算。
异或运算:相同出零,相异出一;
同或运算:相同出一,相异出零。
异或运算:
比如:1 0 1 1 0 0 1 1
      1 1 1 0 1 0 0 1
  ----------------------
   =  0 1 0 1 1 0 1 0

加油!
2016-12-27 16:43
小木木囡
Rank: 1
等 级:新手上路
威 望:1
帖 子:9
专家分:5
注 册:2016-11-29
收藏
得分:0 
上一个帖子,三行的数与数是对齐的

加油!
2016-12-27 16:45
快速回复:下面这个异或运算怎么理解?
数据加载中...
 
   



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

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