按位异或比对字符串的原理是什么?

这是一段利用按位异或比对的例子,讲的是先输入一个数n,再输入(2n-1)个有7个字符组成的字符串,其中(n-1)对是相同,在输入完成后程序就可以输出唯一一个没配对的字符串... 这是一段利用按位异或比对的例子,讲的是先输入一个数n,再输入(2n-1)个有7个字符组成的字符串,其中(n-1)对是相同,在输入完成后程序就可以输出唯一一个没配对的字符串,麻烦大家能不能结合这个例子给我讲讲按位异或比对字符串的原理,多谢了。
#include<stdio.h>
#include<string.h>
int main ()
{
int sum[8],n,i;
char s[8];
while (scanf("%d",&n)!=EOF)
{
getchar();
memset(sum,0,sizeof(sum));
gets(s);
n=n*2-2;
for (i=0;i<7;i++)
sum[i]=s[i];
while (n--)
{
gets(s);
for (i=0;i<7;i++)
sum[i]^=s[i];
}
for (i=0;i<7;i++)
printf("%c",sum[i]);
printf("\n");
}
return 0;
}
展开
 我来答
百度网友30a3645
2013-08-02 · TA获得超过531个赞
知道小有建树答主
回答量:446
采纳率:0%
帮助的人:178万
展开全部
两个字符的异或计算是将字符转换为其ASCII码的二进制数然后进行按位异或计算10和01为1,11和00为0最后再转回整形数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jackwind1987
2013-08-02 · TA获得超过2738个赞
知道大有可为答主
回答量:1268
采纳率:50%
帮助的人:491万
展开全部
两个相同的数亦或会得到0,亦或是可交换的,所以其中一个没有配对的最后就会得出来了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式