vczh的日常 2018-05-09
1:异或运算:符号^,也称XOR运算,它的规则是若参加运算的两个二进制同号,则结果为0,异号则为1,即:0^0=0; 0^1=1; 1^0=1;1^1=0
2:对两个表达式执行按位异或。
<span>result=expression1^expression2</span>
result
任何变量。
expression1
任何表达式。
expression2
任何表达式。
^运算符查看两个表达式的二进制表示法的值,并执行按位异或。该操作的结果如下所示:
0101 (expression1) 1100 (expression2) ---- 1001 (</code>结果<code>)
当且仅当只有一个表达式的某位上为 1 时,结果的该位才为 1。否则结果的该位为 0。
只能用于整数
3:算法例子:LeedCode136.只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
说明:
你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?
示例 1:
输入: [2,2,1] 输出: 1
示例2:
输入: [4,1,2,1,2] 输出: 4
class Program { static void Main(string[] args) { int[] nums = { , , , , }; Console.WriteLine(Solution.SingleNumber(nums)); } public static class Solution { public static int SingleNumber(int[] nums) { for (int i = ; i < nums.Length; i++) { nums[] ^= nums[i];//异或运算:先转换成二进制进行运算 } return nums[]; } }