转自:C的|、||、&、&&、异或、~、!运算位运算位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果。位运算符有:&(按位与)、|(按位或)、^(按位异或)、~ (按位取反)。其中,按位取反运算符是单目运算符,其余均为双目运...
分类:
其他好文 时间:
2014-10-13 19:11:51
阅读次数:
244
题目:读入10000000(10^7)个无符号32位整数,从中取走一个。告诉你剩下的9999999个整数。找出取走了哪一个。要求:代码最多只能用4个无符号32位整型变量。解法:异或运算满足交换率。故有:a = a^(b^b)^(c^c)^....^(d^d) = (a^b^c^....^d)^(b^...
分类:
其他好文 时间:
2014-09-26 18:12:58
阅读次数:
125
题目链接point this这一题有点类似于NIM游戏,当符合一定条件的时候,先手可必胜。这里用到了一个规律。把每一堆的数目进行异或运算(每一堆的数目都是1除外),最后的结果有两种,为0或不为0,若为0则各堆的二进制位相加不进位以后所得到的数的各位数一定是一个偶数。我们称结果为0的情况为平衡状态,如...
分类:
其他好文 时间:
2014-09-23 22:44:05
阅读次数:
206
不用加减乘除做加法 代码(C)本文地址:http://blog.csdn.net/caroline_wendy题目: 写一个函数, 求两个整数之和, 要求在函数体内不得使用+, -, *, /四则运算符号.不能使用运算符号, 使用位运算, 第一步异或运算选位, 第二步与运算进位.代码:/* * ma...
分类:
其他好文 时间:
2014-09-22 14:55:22
阅读次数:
224
方法1:用异或语句a = a^b;b = a^b;a = a^b;注:按位异或运算符^是双目运算符,其功能是参与运算的两数各对应的二进制位相异或,当对应的二进制相异时,结果为1。参与运算数仍以补码形式出现。方法2:a = a+b;b = a-b;a = a-b;如果a、b都是比较大的两个数,a=a+...
分类:
其他好文 时间:
2014-09-17 18:31:02
阅读次数:
183
思路:既然是求两个数的异或运算之和,且由于数字不重复,那么肯定两个数异或的结果数字越大越好,即异或后从ai二进制的最高位后全是1。具体思路看代码:AC代码: 1 #include 2 #include 3 #include 4 #include 5 #include 6 using nam...
分类:
其他好文 时间:
2014-09-15 12:54:28
阅读次数:
198
LeetCode上面有这样两道Single Number 问题:
1、假设一个整型数组中所有的元素都出现了两次,唯独只有一个元素出现了一次,求出这个出现一次的元素。
2、假设一个整型数组中所有的元素都出现了三次,唯独只有一个元素出现了一次,求出这个出现一次的元素。
显然,两个问题唯一的不同就是大部分元素是出现了两次还是三次。
对于问题1:很好解决,通过异或运算,我们可以把所有出现两...
分类:
其他好文 时间:
2014-09-15 11:20:38
阅读次数:
112
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5014解题报告:西安网赛的题,当时想到一半,只想到从大的开始匹配,做异或运算得到对应的b[i],但是少了一个操作,ans[i] = temp,却没有想到ans[temp] = i;所以就一直卡在这里了,因...
分类:
其他好文 时间:
2014-09-14 23:28:07
阅读次数:
219
题目地址:HDU 1849
初次接触nim博弈,感觉好神奇的说。。。居然可以跟异或运算扯上关系。。。。给人类的智商跪了。。。作为地球人我感到很自豪。。
具体证明什么的看这篇博客被。传送门
代码如下:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#inc...
分类:
其他好文 时间:
2014-09-14 22:13:17
阅读次数:
276