1.基本特性:
-
参与运算的两个值,如果两个相应位相同,则结果为0,否则为1。即:0^0=0, 1^0=1, 0^1=1, 1^1=0
例如:10100001^00010001=10110000
- 0^0=0,0^1=1 0异或任何数=任何数
- 1^0=1,1^1=0 1异或任何数=任何数取反
- a^a=0 任何数异或自己=把自己置0
2.异或作用:
-
按位异或可以用来使某些特定的位翻转
如对数10100001的第2位和第3位翻转,可以将数与00000110进行按位异或运算。
10100001^00000110=10100111
1010 0001 ^ 0x06 = 1010 0001 ^ 6 -
通过按位异或运算,可以实现两个值的交换,而不必使用临时变量。
例如交换两个整数a,b的值,可通过下列语句实现:a=10100001,b=00000110
a=a^b; //a=10100111
b=b^a; //b=10100001
a=a^b; //a=00000110
3.LeetCode题目:
Given an array of integers, every element appears twice except for one. Find that single one.
给一个数组,除了一个单独元素,每个元素出现两次,找出这个单独数字
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
使用线性复杂度,不浪费多的内存
4.参考代码:
public class SingleNumber { public int singleNumber(int[] a){ int sNum = 0; for(int i=0;i<a.length;i++) sNum ^=a[i];//异或自己为0,0异或任何数等于任何数 return sNum; } }
相关推荐
异或运算符是二元运算符,用于比较两个二进制数的每一位。如果两个相应的二进制位不同,则结果为1,否则结果为0。这可以用 truth table 来表示: | A | B | A ^ B | | --- | --- | --- | | 0 | 0 | 0 | | 0 | 1 | 1...
首先,按位异或运算符"^"在编程中是一种二进制运算,它对两个操作数的每一位进行异或操作。如果两个位相同,结果为0;如果不同,结果为1。这个性质使得异或运算是可逆的,即A ^ B = C,那么C ^ B = A,这为文件加密...
(1)按位异或可以用来使某些特定的位翻转,如对数10100001的第2位和第3位翻转,可以将数与00000110进行按位异或运算。 10100001^00000110=10100111 //1010 0001 ^ 0x06 = 1010 0001 ^ 6 (2)通过按位异或运算,可以...
本压缩包文件“按位异或校验和计算器.rar”提供了一个用于计算异或校验和的工具,特别是针对十六进制数值的异或操作。 异或操作的基本概念是:如果两个输入位相同,结果为0;如果输入位不同,结果为1。用数学符号...
按位异或运算符`^`是一种双目运算符,用于实现两个数值对应二进位的异或运算。当两个二进位相异时,结果位为1。 **示例** 以9和5为例: - 9的二进制表示为:00001001 - 5的二进制表示为:00000101 进行按位异或...
4. 规律运算符:包括按位与运算符&、按位或运算符|、按位异或运算符^等,用于对二进制数进行操作。 5. 三元运算符:包括条件运算符?:,用于根据条件选择不同的值。 6. 赋值运算符:包括赋值运算符=、加法赋值运算符+...
在C++编程语言中,异或运算符"^"是一个二进制操作符,它执行位级别的异或操作。异或运算的基本原则是:如果两个位相同,结果为0;如果两个位不同,结果为1。在二进制表示下,这个原则很容易理解。例如,2(10)在二...
按位“异或”运算符 (^)是对两个表达式执行按位异或。使用方法: 代码如下: result = expression1 ^ expression2 其中result是任何变量。 expression1是任何表达式。 expression2是任何表达式。 按位“异或”运算符...
代码如下: int a = 5; int b = 30; Console.WriteLine(a^b); Console.ReadKey(); 输出结果是27 这是因为 5的二进制是0000 ... 您可能感兴趣的文章:深入理解C++移位运算符C# 位运算符整理C++位运算符详解(异或
异或运算符(^)在二进制级别上对两个数进行操作,如果对应位相同,结果为0;如果对应位不同,结果为1。例如,二进制数字1010和1100进行异或操作,将得到1110。 在C#中,按位异或校验和的计算通常涉及以下几个步骤...
在Java中,我们可以利用`Integer.parseInt()`方法将十六进制字符串转换为整数,再使用位运算符`^`来进行异或操作。首先,我们需要将输入的十六进制字符串按空格分隔,然后对每个分隔后的十六进制数进行异或运算。...
- 按位异或运算符`^`同样为双目运算符,当两个操作数的对应位不同时,结果位为1,相同则为0。 - 例如,9(00001001)与5(00000101)进行异或得到12(00001100)。 - 异或运算是交换两个变量值而不引入第三变量的常用...
按位异或运算符 (^) 是指假设参与运算的两个二进制位值一样则为0,否则为1。这个运算符可以用来交换两个值,不用临时变量。 例子: * 交换两个值,不用临时变量:可以使用按位异或运算符交换两个值。 四、取反...
在本文中,我们将深入探讨C++中的异或运算符及其在解决LeetCode问题时的应用。异或运算符("^")是C++中的一个二元运算符,它遵循以下规则:相同为0,相异为1。这意味着,如果两个操作数的位在任何位置上都是相同的...
**备注:**按位异或运算符`^`会比较两个操作数的每一位。如果一个位是0,而另一个位是1,结果位是1;如果两个位相同,结果位就是0。这常用于交换两个变量的值,或者找出两个值之间的差异位。 例如: ```cpp ...
按位异或运算符(^)是指:若参加运算的两个二进制位值相同则为0,否则为1。 例如:a^b = c 4. 取反运算符(~) 取反运算符(~)是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0。 例如:~a = b 5...
4. 切换特定位的值:通过按位异或运算符^来实现,例如将n的第7位取反,可以使用n^=0x80。 位运算在程序设计实习中是基础且重要的内容,掌握它可以帮助编写出更加高效和简洁的代码。此外,对于硬件编程、操作系统...
按位异或运算符“^”对两个数的每一位执行异或操作。如果两个二进制位不同,结果位是1;如果相同,结果位是0。异或运算有以下用途: - 位取反:通过与一个掩码进行异或,可以翻转原数的特定位。 - 无额外变量交换...