`
Yi_XiaoFei
  • 浏览: 5449 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

按位异或运算符^

阅读更多

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题目:

Sigle Number

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;
	}
}

 

 

 

 

分享到:
评论

相关推荐

    计算机的异或运算符.pdf

    异或运算符是二元运算符,用于比较两个二进制数的每一位。如果两个相应的二进制位不同,则结果为1,否则结果为0。这可以用 truth table 来表示: | A | B | A ^ B | | --- | --- | --- | | 0 | 0 | 0 | | 0 | 1 | 1...

    用按位异或(^)运算实现文件加密的代码,c语言写dll,vb调用dll中的函数

    首先,按位异或运算符"^"在编程中是一种二进制运算,它对两个操作数的每一位进行异或操作。如果两个位相同,结果为0;如果不同,结果为1。这个性质使得异或运算是可逆的,即A ^ B = C,那么C ^ B = A,这为文件加密...

    C++按位异或运算符的使用介绍

    (1)按位异或可以用来使某些特定的位翻转,如对数10100001的第2位和第3位翻转,可以将数与00000110进行按位异或运算。 10100001^00000110=10100111 //1010 0001 ^ 0x06 = 1010 0001 ^ 6   (2)通过按位异或运算,可以...

    按位异或校验和计算器.rar_异或_异或在线计算_异或在线运算_按位异或_校验和计算器

    本压缩包文件“按位异或校验和计算器.rar”提供了一个用于计算异或校验和的工具,特别是针对十六进制数值的异或操作。 异或操作的基本概念是:如果两个输入位相同,结果为0;如果输入位不同,结果为1。用数学符号...

    按位与_按位或_按位异或_运算

    按位异或运算符`^`是一种双目运算符,用于实现两个数值对应二进位的异或运算。当两个二进位相异时,结果位为1。 **示例** 以9和5为例: - 9的二进制表示为:00001001 - 5的二进制表示为:00000101 进行按位异或...

    javascript运算符语法全面概述.docx

    4. 规律运算符:包括按位与运算符&、按位或运算符|、按位异或运算符^等,用于对二进制数进行操作。 5. 三元运算符:包括条件运算符?:,用于根据条件选择不同的值。 6. 赋值运算符:包括赋值运算符=、加法赋值运算符+...

    C++中的异或运算符^的使用方法

    在C++编程语言中,异或运算符"^"是一个二进制操作符,它执行位级别的异或操作。异或运算的基本原则是:如果两个位相同,结果为0;如果两个位不同,结果为1。在二进制表示下,这个原则很容易理解。例如,2(10)在二...

    JavaScript中按位“异或”运算符使用介绍

    按位“异或”运算符 (^)是对两个表达式执行按位异或。使用方法: 代码如下: result = expression1 ^ expression2 其中result是任何变量。 expression1是任何表达式。 expression2是任何表达式。 按位“异或”运算符...

    c#的异或运算符介绍

    代码如下: 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位异或运算

    在Java中,我们可以利用`Integer.parseInt()`方法将十六进制字符串转换为整数,再使用位运算符`^`来进行异或操作。首先,我们需要将输入的十六进制字符串按空格分隔,然后对每个分隔后的十六进制数进行异或运算。...

    按位与 按位或 按位异或 运算.docx

    - 按位异或运算符`^`同样为双目运算符,当两个操作数的对应位不同时,结果位为1,相同则为0。 - 例如,9(00001001)与5(00000101)进行异或得到12(00001100)。 - 异或运算是交换两个变量值而不引入第三变量的常用...

    C语言位运算符:与、或、异或、取反、左移和右移.docx

    按位异或运算符 (^) 是指假设参与运算的两个二进制位值一样则为0,否则为1。这个运算符可以用来交换两个值,不用临时变量。 例子: * 交换两个值,不用临时变量:可以使用按位异或运算符交换两个值。 四、取反...

    C++:异或运算符大全

    在本文中,我们将深入探讨C++中的异或运算符及其在解决LeetCode问题时的应用。异或运算符("^")是C++中的一个二元运算符,它遵循以下规则:相同为0,相异为1。这意味着,如果两个操作数的位在任何位置上都是相同的...

    C++中的按位与&、按位与或|、按位异或^运算符详解

    **备注:**按位异或运算符`^`会比较两个操作数的每一位。如果一个位是0,而另一个位是1,结果位是1;如果两个位相同,结果位就是0。这常用于交换两个变量的值,或者找出两个值之间的差异位。 例如: ```cpp ...

    C语言位运算符与或异或取反左移和右移.pdf

    按位异或运算符(^)是指:若参加运算的两个二进制位值相同则为0,否则为1。 例如:a^b = c 4. 取反运算符(~) 取反运算符(~)是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0。 例如:~a = b 5...

    位运算基本知识和相关操作

    4. 切换特定位的值:通过按位异或运算符^来实现,例如将n的第7位取反,可以使用n^=0x80。 位运算在程序设计实习中是基础且重要的内容,掌握它可以帮助编写出更加高效和简洁的代码。此外,对于硬件编程、操作系统...

    按位与 按位或 按位异或 运算.pdf

    按位异或运算符“^”对两个数的每一位执行异或操作。如果两个二进制位不同,结果位是1;如果相同,结果位是0。异或运算有以下用途: - 位取反:通过与一个掩码进行异或,可以翻转原数的特定位。 - 无额外变量交换...

Global site tag (gtag.js) - Google Analytics