搜索
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 下面这个异或运算怎么理解?
标题:
下面这个异或运算怎么理解?
只看楼主
侠客cp
等 级:
新手上路
帖 子: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
等 级:
新手上路
帖 子:3
专家分:0
注 册:2016-11-15
第
2
楼
得分:0
^=是C/C++的一个符合运算符。表示异或赋值。
如:
a^=b相当于:a=a^b;
异或就是两个数的二进制形式,按位对比,相同取0,不同取一.
上面的不理解。。。。。
2016-12-19 18:56
侠客cp
等 级:
新手上路
帖 子:3
专家分:0
注 册:2016-11-15
第
3
楼
得分:0
哪位大神知道,求帮助。
2016-12-19 18:57
yangfrancis
等 级:
贵宾
威 望:
141
帖 子:1510
专家分:7661
注 册:2014-5-19
第
4
楼
得分:0
将result和m按位做异或运算,结果赋给result. 因为result是0,这种运算实际上就是把m赋给予result.
比如m=5,二进制表示为"101",而result是0。将"101"和"000"进行位异或运算,第一位和第三位不一样,要做置位处理,第二位两个数一样,不置位,这样结果仍然是"101",即5
2016-12-19 22:09
damzkk
等 级:
论坛游民
威 望:
2
帖 子:18
专家分:37
注 册:2016-11-7
第
5
楼
得分:0
学习了。问题是要输入n个数异或,那是什么意义呢?
2016-12-24 17:04
小木木囡
等 级:
新手上路
威 望:
1
帖 子:9
专家分:5
注 册:2016-11-29
第
6
楼
得分: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
小木木囡
等 级:
新手上路
威 望:
1
帖 子:9
专家分:5
注 册:2016-11-29
第
7
楼
得分:0
上一个帖子,三行的数与数是对齐的
加油!
2016-12-27 16:45
7
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-472610-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 1.620810 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved