-
2022-05-05 15:36:33
当n个变量做异或运算时,若有偶数个变量取“1”时,则函数为“0”;若有奇数个变量取“1”,则函数为“1”。
理解:以2个变量取1为例,当变量相邻时,根据异或运算的结合律可先将其做异或运算,结果为0。此时的运算中就变成了很多个0之间做异或运算,最终结果就为0;当变量不相邻时,此时的1都会和0做异或运算,结果为1,那么此时的运算为俩个1和很多个0一起做异或运算,最后就为俩个1做异或运算结果为0。当变量取2n个时,同理,故当n个变量做异或运算时,若有偶数个变量取“1”,则函数为“0”;
若为奇数个变量时,相当于n-1个变量做异或运算时,取偶数个变量为1,则结果为0(上一个结论)。最后在与第n个变量取“1”再做异或运算,则其结果为“1”;
更多相关内容 -
异或运算的理解和应用
2020-03-31 13:00:02异或的运算规则,简单来说,就是当前位的两个二进制的表示不同时为1,相同时则为0。 百度百科对于异或的解释如下: 异或,英文为exclusive OR,缩写成xor 异或(xor)是一个数学运算符。它应用于逻辑运算。异或的...异或的运算规则,简单来说,就是当前位的两个二进制的表示不同时为1,相同时则为0。
百度百科对于异或的解释如下:
异或,英文为exclusive OR,缩写成xor
异或(xor)是一个数学运算符。它应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。其运算法则为:
a⊕b = (¬a ∧ b) ∨ (a ∧¬b)
如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
…对于计算机来说,由于所有数都是以二进制的形式储存的,因此包括异或运算在内的各种位运算,都具有极高的效率。
在撸码时一般讨论的异或为两个数的运算,
如:1101 ^ 1001 = 0100 (13 ^ 9 = 4)
(以Java举例,异或运算的符号为^
)而其实一个数也可以单独异或,如:
a = 1010,b = ^a = 1 ^ 0 ^ 1 ^ 0 = 0
这种方法通常用来计算数字中1的个数是奇数还是偶数,这里不做讨论。异或预算的特点:
- 任何数异或0,都等于自身;
- 任何数异或1,都等于自身取反;
- 任何数异或自身,都等于0;(注意是a ^ a,与上文的^a不同);
- 任何数对同一个数异或两次后,都等于自身;
异或运算的应用(以Java为例):
1.面试题中常见的两个整数变量a,b值的互换(若a = 3, b = 4)
方法一:int temp = a; //temp = 3 a = b; //a = 4 b = temp; // b = 3
此方法多产生了一个变量temp。
方法二:
a = a + b; // a = 3 + 4 = 7 b = a - b; // b = 7 - 4 = 3 a = a - b; // a = 7 - 3 = 4
此方法 a + b 的值有溢出风险。
而使用异或运算,则可以完美解决:
a = a ^ b; // a = 3 ^ 4 = 7 b = a ^ b; // b = 7 ^ 4 = 3 a = a ^ b; // a = 7 ^ 3 = 4
2.力扣 leetcode 第136题,求只出现一次的数字:
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
输入: [2,2,1]
输出: 1
输入: [4,1,2,1,2]
输出: 4这道题使用暴力解法需要两次循环,快速排序的方法复杂度为O(nlogn),若使用Hash表,时间和空间复杂度均为O(n)。
而题目最主要的要求是不使用额外的空间,而题中提到其它元素均出现了两次,所以在这里使用异或运算,利用异或的上文所述特点,便可以轻松解决:class Solution { public int singleNumber(int[] nums) { int res = 0; for (int num : nums) { res = res ^ num; // 此处可以简化,写成 res ^= num } return res; } }
-
异或运算规律
2021-05-22 19:48:351.a ⊕ a = 0 2. a ⊕ b = b ⊕ a 3. a ⊕b ⊕ c = a ⊕ (b ⊕ c) = (a ⊕ b) ...根据两个相等的数异或值为零:如sum = a ^ b ^ c ^ d,如果随机删去一个变量比如删除b之后的异或和为sum1 = a ^ c ^ d,那么有sum1 = sum^1.a ⊕ a = 0
2. a ⊕ b = b ⊕ a
3. a ⊕b ⊕ c = a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c;
4. d = a ⊕ b ⊕ c 可以推出 a = d ⊕ b ⊕ c.
5. a ⊕ b ⊕ a = b.
6.若x是二进制数0101,y是二进制数1011,则x⊕y=1110比较特殊的有:
一 : 自反性:a ^ b ^ a = b。
根据两个相等的数异或值为零:如sum = a ^ b ^ c ^ d,如果随机删去一个变量比如删除b之后的异或和为sum1 = a ^ c ^ d,那么有sum1 = sum^b二: 交换律:a ^ b = b ^ a
任意个数的异或和等于把这些数顺序打乱之后的异或和。(内容不变)三: 结合律:a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c;
d = a ^ b ^ c 可以推出 a = d ^ b ^ c。
-
python 异或运算的前提_异或运算公式
2020-12-04 00:12:25Python-第七城市609x288 - 73KB - JPEGPython基础(10)--数字_资讯_突袭网609x288 - 33KB - JPEGpython学习笔记之运算符_第1页_web前端开发715x330 - 20KB - PNG【效率提升】Python中的并行运算1728x1080 -...Python基础(10)–数字-Python-第七城市
609x288 - 73KB - JPEG
Python基础(10)--数字_资讯_突袭网
609x288 - 33KB - JPEG
python学习笔记之运算符_第1页_web前端开发
715x330 - 20KB - PNG
【效率提升】Python中的并行运算
1728x1080 - 821KB - JPEG
Python 运算符 - 软件开发其他 - 红黑联盟
729x443 - 32KB - PNG
Python的条件语句与运算符优先级详解_「电脑
740x426 - 43KB - JPEG
Python新手学习基础之运算符--赋值与逻辑运算
470x324 - 25KB - PNG
Python入门 --基本数据类型与运算符_Python_第
706x342 - 81KB - PNG
Python-数据运算_资讯_突袭网
1472x810 - 105KB - PNG
python--运算符_资讯_突袭网
727x425 - 55KB - JPEG
Python新手学习基础之运算符--算术运算符_「
384x697 - 20KB - PNG
深入解析Python中的变量和赋值运算符_Python
743x274 - 30KB - JPEG
python--运算符_资讯_突袭网
731x249 - 49KB - JPEG
python--运算符_资讯_突袭网
733x278 - 48KB - JPEG
python--运算符_资讯_突袭网
728x277 - 54KB - JPEG
Python 运算符 什么是运算符?本章节主要说明Python的运算符。举个简单的例子 4+5=9。例子中,4 和 5 被
Python为揭开异或加密运算的加密及解密过程 去下载 下载需先安装客户端 {clientText} 客户端特权:3倍流畅
思路要点:一个数字和自己异或一次会变成0。参考代码: import 详解Python中的位运算符规则、原理与用法
python中“按位与,或,异或”与C语言的不同 按位异或运算的典型用法是求一个位串信息的某几位信息的反。
今天在使用Python的异或运算的时候,结果发现得出的结果和我python 异或运算 交换a,b两值的方法:a=a^b;
交换a,b两值的方法: a=a^b;b=a^b;a=a^b;b=a^b=(a^b)^b=a^b^b=a^(ba异或b=(a and(not b))or((not a)and b)
Python语言支持以下类型的运算符- 1.算术运算符 2.比较(关系)运算符 3.赋值运算符 4.逻辑运算符 5.按位运算
在python编程语言里面: 按位的运算,都按位的按位异或运算的典型用法是求一个位串信息的某几位信息的反。
卡罗方法求解圆周率近似值原理与python实现两行python代码实现电影打分与推荐python按位异或运算符^应用
-
什么是异或_异或运算及异或运算的作用
2020-04-28 21:37:18什么是异或_异或运算及异或运算的作用 异或,是一个数学运算符,英文为exclusive OR,缩写为xor,应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。其运算法则为: a⊕b = (¬a ∧ b) ∨ (a ∧... -
异或运算常见的应用
2022-01-27 11:16:01接下来将介绍异或运算的一些基础知识以及在实际中的一些应用 基础知识 异或是计算机中一种二元逻辑运算, 运算符号是 ^,它按照二进制位进行异或运算,结果为 真 或 假, 它的运算法则如下 x y x^y 0. -
异或运算 XOR ⊕ 教程
2021-06-21 13:42:57大家比较熟悉的逻辑运算,主要是"与运算"(AND)和"或运算"(OR),还有一种"异或运算"(XOR),也非常重要。 本文介绍异或运算的含义和应用。 -
异或运算
2020-02-17 01:00:53异或运算法则 如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0... -
异或运算算法
2021-08-08 07:24:431异或运算法则 异或运算:相同为0,不同为1 异或运算就记成无进位相加。 满足交换律,结合律。 0^N = N N^N = 0 int a = 7; // 00111 int b = 13; // 01101 01010 = 8+2 = 10 2不用任何空间的情况下交换两个... -
C语言异或运算
2021-05-20 08:48:40C语言异或运算位运算符家族中,最常用的,某过于异或运算符。异或运算符是指: 参与运算的两个值,如果两个相应位相同,则结果为0,否则为1。即:0^0=0, 1^0=1, 0^1=1, 1^1=0例如:10100001^00010001=... -
数据结构 之 异或运算
2021-10-07 21:35:04异或运算:相同为0,不同为1(无进位相加) 例子:6 ^ 7 = 110 ^ 111 = 001 = 1(十进制) 同或运算:相同为1,不同为0 ????题目一:如何不用额外变量交换两个数 a = 666; b = 888; a = a^b b = a^b ⇒ ( a^b )^... -
详解异或运算
2020-11-12 22:58:50搞不懂异或的朋友看过来,文章写得嘎嘎明白。 -
C语言异或运算的一些特性及巧妙应用
2021-05-21 02:25:25不管eax寄存器里的值原来是多少,做异或运算都能得到0,这条指令比同样效果的movl $0, %eax指令快,直接对寄存器做位运算比生成一个立即数再传送到寄存器要快一些。2.从异或的真值表中可以看出,和0做异或保持原值... -
异或运算及异或运算的应用
2021-09-02 13:09:24异或是一个数学运算符,它应用于逻辑运算 数学符号⊕ 计算机符号 eor 1.1运算: a ⊕ b = (¬a ∧ b ) ∨ (a ∧ ¬b) 1. a、b两值相同,则异或结果为0;a、b两值不同,则异或结果为1 2. 也可以说是“不进位相加”... -
异或运算的性质
2021-07-06 22:37:10异或运算的性质 1)0^N == N, N^N == 0 2)异或运算满足交换律和结合率 3)不用额外变量交换两个数 4) 异或就是无进位的相加 int a = A, b = B; a = a ^ b = A ^ B; b = a ^ b = (A ^ B) ^ B = A ^ (B ^ B) = A ^ 0 ... -
加密解密 异或运算
2022-04-01 23:56:09加密 解密 异或运算 -
异或运算来实现两个变量互换
2017-03-05 16:50:36一般情况下,如果我们要实现两... 这里介绍一种特殊的情况(并不是对所有类型的变量都可以使用):当变量的类型是整形或者字符型的时候,位运算是一个非常有用的工具,尤其是异或运算。异或运算的法则是:x^0=x;x^x=0; -
深度了解异或运算
2022-05-18 21:42:39很多题目用正常的思路解题会很复杂,但是用异或运算会快速解决问题,所以这一次我们来深入学习异或运算。 一、什么是异或运算? 1.定义:异或,是一个数学运算符,英文为exclusive OR,缩写为XOr,应 -
什么是异或_异或运算及异或运算的作用 - 全文
2021-06-28 02:51:31异或,是一个数学运算符,英文为exclusive OR,缩写为xor,应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。其运算法则为:a⊕b = (¬a ∧ b) ∨ (a ∧¬b)如果a、b两个值不相同,则异或结果为1。... -
C 关于使用异或运算交换两数的值
2021-05-20 18:55:22异或运算可以达到交换两数的目的,代码如下:void swap(int &a, int &b){a = a^b;b = a^b;a = a^b;}但不推荐使用这种方式,附上常用的临时变量方法对比说明。临时变量方法:void swap(int &a, int &b)... -
异或运算的深入理解
2022-05-08 00:56:12异或运算(英文:Exclusive or,简写为XOR),是一种逻辑运算。符号⊕ ,编程中使用^表示异或运算 我们可以有如下的方式理解它: 1. 异或的定义:a⊕b = (¬a ∧ b) ∨ (a ∧¬b)。 (¬a ∧ b), (a ∧¬b)都表示相... -
对于异或运算的理解
2021-03-07 20:43:27什么是异或? 在逻辑运算方面有着 与、或、非、异或等操作,相对应的符号为&&、||、!、^。 什么是异或呢?异或也叫半加运算,其运算法则相当于不带...异或运算的作用 参与运算的两个值,如果两个相应b -
为什么用异或运算可以实现两变量互换
2021-02-03 15:57:28为什么用异或运算可以实现两变量的互换 文章目录为什么用异或运算可以实现两变量的互换前言一、异或运算1.基本性质2.两变量互换的关键语句二、用异或实现两变量互换 完整代码三、运算结果总结 前言 一、异或... -
一文看懂C语言异或运算
2021-01-17 13:22:17一、异或运算简介异或运算一般指异或。异或(xor)是一个数学运算符。它应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。其运算法则为:a⊕b=(¬a∧b)∨(a∧¬b)如果a、b两个值不相同,则异或结果为1。... -
java异或运算不使用中间变量交换两个数(Java版)详细分解
2021-03-04 08:23:12Java的异或运算^,这个小不点“^”就是Java的异或运算符,其特性如下:真^假=真假^真=真 假^假=假 真^真=假,它却是说明了Java异或运算的基本法则,那就是:只要两个条件同时为真或假,其结果都为假(这里要注意... -
Java异或运算和位运算
2021-04-02 09:46:58Java异或运算和位运算异或运算异或的应用参考 异或运算 简单点说就是:相同为0,不同为1。另外,任何数与0异或的结果为自己本身,任何数与自己异或结果为0: n ^ n = 0 n ^ 0 = n 异或运算满足的法则: a ^ b = b... -
异或运算 ^(xor)小解
2022-03-10 20:24:36PS:这里用^表示异或运算,用 ^表示幂,为了放变整数的二进制序列只用4位 什么是异或运算: 设a=1,b=3; 那么a=0001,b=0011 a^b=0001^0011=0010,当两个数做异或运算的时候对应的位置,如果相同则为0,不同则为1,...