有一个序列,有一个数只出现一次而其他数都出现两次,要求找出这个数。异或运算的自反性。。#includeint n,x,p;int main(){ scanf("%d",&n); while(n--){ scanf("%d",&x); p^=x; } ...
分类:
其他好文 时间:
2015-03-15 16:34:47
阅读次数:
126
教课流程: 位运算符:两个整数型数据交换位置--中间变量、位异或运算[ ^ ] 三元运算符--if语句【数据键盘录入】 switch语句总结: 1:运算符 (1)位运算符 ^ : 一个数据对同一个数据^两次,结果还是数据本身。[异或] 举例:a ^ b ^ b = a (2)条件运算符 格式:...
分类:
编程语言 时间:
2015-03-15 00:29:58
阅读次数:
295
由于异或运算满足结合律,我们把当前状态的SG函数定义为 它所能切割成的所有纸片对的两两异或和之外的最小非负整数。#include#include#includeusing namespace std;int n,m,SG[201][201];int sg(int x,int y){ if(SG[x]...
分类:
其他好文 时间:
2015-03-14 09:36:12
阅读次数:
152
XOR按位异或运算,比如4跟6是100和110,按位异或后为101,即为5;该运算有个特性,a XOR b=c,a XOR c=b;数轴原理求最大值:#define max(a,b) (((a)+(b)+abs((a)-(b)))/2)计算是i的几次方是2的64次方:top= ceil(64 * l...
分类:
其他好文 时间:
2015-03-12 18:31:39
阅读次数:
95
异或运算
True ⊕ False = True
False ⊕ True = True
False ⊕ False = False
True ⊕ True = False
同或运算
True ⊙ False = False
False ⊙ True = False
False ⊙ False = Ture
True ⊙ True = Ture
或运算
True || Fa...
分类:
其他好文 时间:
2015-03-11 17:16:12
阅读次数:
143
交换两个变量(a和b)的值,最简单的办法是另定义一个变量(c),将a赋给c,然后调换。下面给出几种不使用第三个变量的办法:1.利用运算交换两个变量值a = b - a;b = b - a;a = b + a;2.位运算通过异或运算来交换值a=a^b; b=a^b; a=a^b;3.交换指针地址
分类:
其他好文 时间:
2015-03-10 18:52:32
阅读次数:
100
记得刚开始学C++的时候,也做过两个数的交换,当时只用过下面的第一种和第三种方法,今天在看传智播客Java视频教程的时候,学到了另两种方式假设a=10,b=20,交换a,b的值方法一,使用第三方的变量,也是最常用的方法int c=a;a=b;b=a;方法二,位异或运算a=a^b;b=a^b; ...
分类:
其他好文 时间:
2015-03-10 10:19:11
阅读次数:
165
这个题用位运算就非常简单了,前提是首先熟悉位运算,这里用到一个异或运算,也就是 ^ 这个符号,他的运算规则是:相同为0,不同为1。知道了这个之后,就容易想到相同的两个数异或之后为0,所以下面很关键的一步,也是我想了好久也没想起来的一步,就是把所有的数都异或一遍,那么最后剩下的一定是那个一个的,还有一...
分类:
其他好文 时间:
2015-03-09 22:23:18
阅读次数:
223
异或运算法则:相同为0,不同为1
异或运算符∧也称XOR运算符。
它的规则是若参加运算的两个二进位同号,则结果为0(假);异号则为1(真)。
即0∧0=0,0∧1=1,1∧1=0。如: 即071∧052,结果为023(八进制数)。
“异或”的意思是判断两个相应的位值是否为“异”,为“异”(值不同)就取真(1),否则为(0)。
下面举例说明∧运...
分类:
其他好文 时间:
2015-03-06 17:03:54
阅读次数:
181
怎样才能更好的加密一段字符串?MD5、RSA、DES?好吧,这些都不懂。
所以想法是(参考度娘):
对于加密:
· 从待加密字符串中取出一个字符
· 取字符的低字节和Key1进行异或运算
· 取字符的高字节
· 将运算后的数据合成新的字符
对于解密:
· 从待解密字符串中取出一个字符
· 取字符的低字节和Key1进行异或运算
· 取字符的高字节
· 将运算后的数据合成新的...
分类:
其他好文 时间:
2015-02-26 13:30:03
阅读次数:
163