说说异或运算^和他的一个常用作用。
异或的运算方法是一个二进制运算:
1^1=0
0^0=0
1^0=1
0^1=1
两者相等为0,不等为1.
这样我们发现交换两个整数的值时可以不用第三个参数。
如a=11,b=9.以下是二进制
a=a^b=1011^1001=0010;
b=b^a=1001^0010=1011;
a=a^b=0010^1011=1001;
这样一来a=9,b=13了。
一个数和本身异或运算的结果为0
给你n个数,其中有且仅有一个数出现了奇数次,其余的数都出现了偶数次。用线性时间常数空间找出出现了奇数次的那一个数。
给你n个数,其中有且仅有两个数出现了奇数次,其余的数都出现了偶数次。用线性时间常数空间找出出现了奇数次的那两个数。
答案:
从头到尾异或一遍,最后得到的那个数就是出现了奇数次的数。这是因为异或有一个神奇的性质:两次异或同一个数,结果不变。再考虑到异或运算满足交换律,先异或和后异或都是一样的,因此这个算法显然正确。
从头到尾异或一遍,你就得到了需要求的两个数异或后的值。这两个数显然不相等,异或出来的结果不为0。我们可以据此找出两个数的二进制表达中不同的一位,然后把所有这n个数分成两类,在那一位上是0的分成一类,在那一位上是1的分到另一类。对每一类分别使用前一个问题的算法。
分享到:
相关推荐
可进行十六进制字符串按位异或运算,就是输入十六进制数,每个十六进制数间输入空格,然后点输出即可得到结果
加密解密 (利用异或运算) 进行异或加密解密运算
异或运算 进行加密 delphi编写异或运算 进行加密 delphi编写异或运算 进行加密 delphi编写异或运算 进行加密 delphi编写异或运算 进行加密 delphi编写异或运算 进行加密 delphi编写异或运算 进行加密 delphi编写异或...
用于计算十六进制的异或运算,内含源文件以及执行文件
基于BP网络的异或运算多阈值神经元的实现 基于BP网络的异或运算多阈值神经元的实现 毕业论文专用
异或运算,传入两个数据进行异或运算。得到相应的数据
异或运算加密(Delphi) 一个Delphi写的异或加密解密工具
最新单片机仿真 用P0口显示按位异或运算结果最新单片机仿真 用P0口显示按位异或运算结果最新单片机仿真 用P0口显示按位异或运算结果最新单片机仿真 用P0口显示按位异或运算结果最新单片机仿真 用P0口显示按位异或...
282-用P0口显示按位异或运算结果(51单片机C语言实例Proteus仿真和代码)282-用P0口显示按位异或运算结果(51单片机C语言实例Proteus仿真和代码)282-用P0口显示按位异或运算结果(51单片机C语言实例Proteus仿真和代码)...
奇偶校验的基本运算是异或运算。实现这一功能的电路称为奇校验电路;输出端加一个非门,则可得到偶校验电路。通常合二为一,称为奇偶校验电路。
异或运算在卡诺图中的表示方法,将他们紧密的联系在一起。
神经网络-实现异或运算功能(NeuralNetworkForXor) VB6源码 算法:BP算法,动量,delta-bar-delta(需改动注释) 架构: 输入层PEs:2 输出层PEs:1 中间层PEs可自定义。 MSE(Mean Square Error)输出至txt供分析参考...
基于Keil+51单片机用P0口显示按位异或运算结果.rar(源码+仿真)基于Keil+51单片机用P0口显示按位异或运算结果.rar(源码+仿真)基于Keil+51单片机用P0口显示按位异或运算结果.rar(源码+仿真)基于Keil+51单片机用P...
异或运算的真值表,例子展示异或运算 该资源仅供学习!!!
题目描述:给你n个正整数,你要找出哪两个数按位异或运算后的结果是最大的。 输入:输入一个整数n(2<=n<=100000),然后就是n个109以内的正整数。 输出:输出最大的按位异或运算结果。 样例输入: 4 1 3...
C语言15:用P0口显示按位异或运算结果
异或运算加密,开发环境vs2013,仅支持整型数据加密,能够实现加密和解密。
。
什么是异或运算,异或运算的作用参考.doc
异或运算的性质: 异或运算是基于⼆进制的位运算,采⽤符号XOR或者^来表⽰,运算规则是就与⼆进制,如果是同值取0、异值取1。 简单的理解就是不进位加法,例如1+1=0,0+0=0,1+0=0; 性质: 1. 交换律 可以任意交换...