计算技巧
简单使用。
计算方法-巧记
普通:相同位0,相异为1
方便记法:无进位加法
运算规律
int a ,b 存在如下运算规律:
a^a = 0
a^0 = a
a^a^0 = a
a^a...(奇数个) = a
a^a...(偶数个) = 0
实战应用
- 计算整数数组中唯一一个奇数个数数值
arr[10]; ==默认已初始化赋值==
int result = 0;
for(int i =0; i< 10;i++){
result ^= arr[i];
}
结果:result
2.查找某个数,二进制形式最右侧1所在的位置 重要
整数 :n
公式: result = n ^ ((~n) +1 )
以上知识可解决,找到数组中存在两个数据量为奇数的数值问题
待续。。。