异或

【计算机系统要素】Hack机器/汇编语言 本文是笔者拜读《计算机系统要素》第4章(机器语言)的实践项目。 阅读详情
 

异或

异或运算即异或。

百度百科所有内容均应列出 参考资料以供查证。欢迎您协助 编辑改善该词条。
异或,英文为exclusive OR,或缩写成xor
异或( xor)是一个数学运算符。它应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。其运算法则为:
a⊕b = (¬a ∧ b) ∨ (a ∧¬b)
两个值不相同,则异或结果为真。反之,为假。 不同为1,相同为0。
异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位。
异或略称为XOR、EOR、EX-OR
程序中有三种演算子:XOR、xor、⊕。
使用方法如下
z = x ⊕ y
z = x xor y
中文名
异或
外文名
exclusive OR
数学符号
⊕
英文简称
xor

1运算法则编辑

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
只有在两个比较的位不同时其结果是1,否则结果为0
即“相同为0,不同为1”!
输入运算符输入结果
1⊕01
1⊕10
0⊕00
0⊕11

2逻辑编辑

异或逻辑的真值表如 图1所示,其逻辑符号如 图2所示。异或逻辑的关系是:当AB不同时,输出P=1;当AB相同时,输出P=0。“⊕”是异或运算符号,异或逻辑也是与或非逻辑的组合,其逻辑表达式为:
P=A⊕B
由图1可知,异或运算的规则是
0⊕0=0,0⊕1=1
1⊕0=1,1⊕1=0
口诀:相同取0,相异取1
事实上,XOR 在英文里面的定义为either one (is one), but not both, 也即只有一个为真(1)时,取真(1)。

3作用编辑

在计算机中普遍运用,异或(xor)的 逻辑符号一般用xor,也有用⊕的:
真⊕假=真
假⊕真=真
假⊕假=假
真⊕真=假
或者为:
True ⊕ False = True
False ⊕ True = True
False ⊕ False = False
True ⊕ True = False
部分计算机语言用1表示真,用0表示假,所以两个字节按位异或如下
 00000000
xor00000000
----------------------------------
 00000000
============我是分界线1============
下面是两个二进制数值进行异或计算:
 11111111
xor00000000
----------------------------
 11111111
============我是分界线2============
现实中用的都是十进制的数值,那么我们来看一看两个十进制数值是怎么进行异或计算:
5 ⊕ 2 = ?
1.进行异或计算前会把数值都转换为二进制的:
5和2转为二进制分别为:0101 、0010
 0101
xor0010
----------------------------
 0111
2.再把结果 0111 转换为十进制的:7
3.所以 5 ⊕ 2 = 7

4巧用编辑

与其它语言不同,C语言和C++语言的异或不用xor,而是用“^”,键入方式为Shift+6。(而其它语言的“^”一般表示乘方)
若需要交换两个变量的值,除了通常使用的借用中间变量进行交换外,还可以利用异或,仅使用两个变量进行交换,如:
1
2
3
a=a^b;
b=b^a;
a=a^b;
详解:
1
2
3
a1=a^b
b=a1^b
a=a1^b=a1^(a1^b)=a1^a1^b=b
集合:
1a=a^b^(b=a);
这样就完成了a与b的交换。
综上:同一变量与另一变量和其异或值异或等于自身。
用例:可使用于加密算法某一环节或更多环节,使算法更复杂,不易被破解,安全性更高。 [1]
前缀异或算法以及异或的其它基础应用 本文目录异或的概念(对于新手)前缀异或数组 异或的概念(对于新手) 异或是一种逻辑运算符,对两个数异或的结果实际是看其在二进制下比特位是否相同: 异或运算符 ^ (⊕ 核心:二进制下对应位值相同为0,不同为1 /* 假设我们要对9和7进行异或,其中9的二进制为1001,7为0111 7 -- 0 1 1 1 ⊕ 9 -- 1 0 0 1 ----------- 14-- 1 1 1 0 因此7^9 = 14 */ /* 异或的一些基本运算规则: a ^ a = 0, 0 ^ a = a, a ^ 阅读详情

相关推荐

深入掌握Hack编程语言的实例精讲

本文还有配套的精品资源,点击获取 简介:《Hack编程实例精讲2》是一本深入探讨Hack编程语言的书籍,由Facebook开发,专用于PHP环境。本书通过实例详细讲解了Hack的核心概念和技术,包括静态类型系统、类型声明、面向对象编程、命名空间、类型提示和类型检查、协程、错误处理和异常处理、Hack与PHP的互操作性、开发工具以及最佳实践和代码风格。读者将通过这些实例学习如...

weixin_42613017的博客 971

Java实现hack汇编器

Hack汇编语言是一种特定于计算机体系结构的汇编语言,使用Hack架构的机器码指令来编写程序。Hack是一种基于Von Neumann结构的计算机体系结构,由Harvard大学的Nand to Tetris项目开发出来,用于实现计算机硬件和软件。Hack汇编语言主要用于在Nand to Tetris项目中编写计算机硬件和软件。该项目旨在教授计算机系统的基本原理和构造,从最基本的逻辑门开始,一步步地构建出完整的计算机系统,包括CPU、内存、输入/输出、操作系统和编程语言等方面。

笔记 741

实战指南:轻松破解DataDome滑块验证码的关键步骤

本文详细介绍了破解DataDome滑块验证码的关键步骤,包括理解其工作原理、准备工作、参数获取与配置、完整破解流程及API调用。通过使用Capsolver服务和模拟真实用户行为,帮助开发者有效绕过这一反机器人机制,同时强调了法律与道德考量。

weixin_30415113的博客 481

《计算机系统要素》阅读总结及实现第四章——Hack机器语言

《计算机系统要素》阅读总结及实现第四章——Hack机器语言

z1997zc的博客 1096

【Unity实战】HybridCLR热更快速集成

本文假设你已经通过UPM导入了HybridCLR、Addressables、il2cpp支持并具有一定的C#基础和Unity编辑器操作能力。

u012587406的博客 4995

基于PWM的汽车仪表步进电机微步驱动优化实践

本文深入探讨了基于PWM的微步驱动技术,用于优化汽车仪表步进电机的运行性能。通过将传统的分步驱动升级为PWM微步细分驱动,利用正弦/余弦查表法合成旋转磁场,有效消除了指针抖动与噪声,实现了指针的平滑、精准运动。文章以STM32和VID2905电机为例,提供了详细的硬件连接、代码实现及高级优化技巧,为提升汽车仪表体验提供了实用方案。

weixin_29169505的博客 512

Hack 语言学习/参考---1.Hack 语言

Table of Contents What is Hack? Hack Background Summary Hack is a language for HHVM that interopates seamlessly with PHP. HHVM supports both Hack and PHP; code can be run on HHVM in either lan...

weixin_30466421的博客 486

【黑马点评】项目知识点及面经整理

【黑马点评】项目知识点及面经整理

m0_52031708的博客 6605

什么是异或_异或运算及异或运算的作用

什么是异或_异或运算及异或运算的作用 异或,是一个数学运算符,英文为exclusive OR,缩写为xor,应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。其运算法则为:   a⊕b = (¬a ∧ b) ∨ (a ∧¬b)   如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。   异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下...

cxu123321的博客 26万+

PostgreSQL使用 pg_rman物理备份搭建流复制备库(streaming replication standby)

摘要:使用pg_rman备份搭建PostgreSQL流复制备库 本文详细介绍了利用pg_rman工具快速搭建PostgreSQL流复制备库的完整流程。该方法结合物理备份的高效性和流复制的实时性,特别适合大型数据库环境。主要内容包括:主库上的pg_rman安装配置、全量备份操作;备份文件传输至备库;备库数据目录准备及恢复;流复制参数配置;以及最终的启动验证步骤。文章还提供了架构示意图和关键配置示例,并包含常见问题排查建议,如备库无法启动或复制卡顿情况的处理方法。整个流程强调通过.pgpass文件管理密码的安全

liumangtuzi888的博客 1169

创龙 瑞芯微 RK3588 国产2.4GHz八核 工业开发板—ISP图像处理开发案例

创龙科技研发的 TL3588-EVM 评估板具备强大视频处理能力,可满足多场景视频开发需求。为助力开发者快速上手,本文整理 7 个实用视频开发案例,涵盖从采集到显示的全流程,详细说明各案例的硬件连接、参数配置与代码解析,帮助开发者高效实现评估板视频相关功能开发与调试。

创龙,嵌入式一体化解决方案商 209

详解异或运算

搞不懂异或的朋友看过来,文章写得嘎嘎明白。

起个破名真费劲..的博客 2万+

RK3568平台YOLOv11模型部署全流程实战:环境搭建、模型转换与性能优化解析

在AI边缘计算领域,瑞芯微RK3568芯片凭借其强大的NPU算力和丰富的接口资源,成为了众多开发者的首选平台。然而,瑞芯微官方文档虽然提供了YOLO11预训练模型的部署方案,但对于需要自定义数据集训练的开发者来说,从模型训练到板端部署的完整流程却缺乏详细指导。本文将带你走完从环境搭建、数据准备、模型训练到最终板端部署的完整技术路线,并分享实际开发中遇到的各种坑点和解决方案。让我们一起探索如何在RK3568平台上实现30FPS稳定推理的YOLO11目标检测应用!

LXY_LOVE36的博客 120

异或性质——前缀异或

昨天遇到一个非常神奇的事情,异或也能维护前缀? 有两个例题: 例一、子段异或 描述: 给出长度为n的数列,问 异或值为0的子段一共有多少? 思路: 之前有一个考前缀和的,求子段和为0的子段个数,做法是这样的: 始终取前缀和,如果该位置的前缀和sum之前出现过,那么那次出现的位置到当前位置这一段总和为0。map存下sum出现的次数。遍历到当前位置,map[sum]便是以当前位置结尾的,子段和为0的子段个数。 其实这道题也是这个思路: 始终取前缀异或,如果当前位置的前缀异或sxor之前出现过,那么那次出现的位置

Mr_dimple的博客 5353

vue2 - 最新详细实现高德地图绘制动态热力图详细教程,在某区域或城市地图上做“热力图层“展示人流量、旅游人口密度、热量图、全国地区地理热力图,利用颜色的深浅表示密度或强度等场景(详细示例代码教程)

vue2,nuxt2,高德地图,热力图,绘制热力图层,报错,卡顿,出不来怎么办,无法关闭,怎么解决这个问题,出错,城市名称,城市某个街道,城区,省份,市区,县城,乡镇,村,各省份的热力图,交通流量,人口流量,密度,旅游出行,人口数量,颜色介绍,深浅代表,人流量,vue2使用高德地图实现某个区域热力图,vue高德地图api加载热力图及关闭,接收热力图数据并渲染热力图,关掉热力图,Vue使用高德API制作热力图,热力图加载不出来,电子围栏围住热力图,vue2中使用高德地图渲染热力图组件,高德地图使用热力图详细教

✅ 精选推荐文章 4201

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

什么是异或和?异或和题目练习

异或和:是指对两个二进制数进行异或运算后得到的结果。异或运算是一种逻辑运算,用符号"⊕"表示,当两个二进制位不同时,结果为1;当两个二进制位相同时,结果为0。

时光の尘的博客 9093

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

异或问题总结

异或简单来说就是相同的得0,相异得1,异或有一些性质例如满足交换律,结合律,自反性等等,这些性质实际上在题目中考察不多,题目更多的是考察你的思维01的异或固然容易,但是当数据扩大到数万级别的时候就涉及到了数的拆分,把十进制转换为二进制是解决异或问题常见的一种手段,面对异或相关的问题都需要有进行位运算的思想。

牛马一只 2381

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

怎样理解异或

一、异或 异或是离散数学中逻辑运算的一种二元计算,符号为⊕,当符号前后的两者分别为F和T时,结果才为T,若两者都是F,或两者都是T,则运算结果为F。即, V1 V2 结果 F F F F T T T F T T T F 两个数字也可以做异或操作,首先需要把两个数字转换为二进制,并把每一位的数字两两做如下比较: V1 V2 结果 0 0 0 0 1...

Daniel的博客 1万+

神奇的异或运算

神奇的异或运算何为异或运算异或运算的特点异或运算的逆运算是其本身异或运算与顺序无关两种特殊的异或异或运算的用途用异或实现swap函数找出唯一不重复的数字 何为异或运算 异或运算是基本bool运算/位运算1的中的一种, C语言里用^表示, 此处用⊕\oplus⊕表示。 运算规则为,相同为0, 不同为1: 1⊕1=00⊕0=00⊕1=11⊕0=1 1 \oplus 1 = 0 \\ 0 \oplus ...

Daniel2333的博客 8150

PHP异或

PHP异或流程: 在PHP中,两个变量的值进行异或时,会先将两个变量的值转换为ASCII,再将ASCII转换为二进制,对两对二进制数据进行异或,异或完,再将结果转为ASCII,最后将ASCII转为字符串,即为最终结果。 异或运算法则: 0&0=0;1&1=0;0&1=1;1&0=1 两个二进制数相同时,异或为0,不同为1 例:php中的字符串A和字符串? <?...

1stPeak's Blog 6094

【总结】异或

「MtOI2019」永夜的报应 辉夜手里有n\rm{n}n个非负整数 a\rm{a}a1, a\rm{a}a2, ……a\rm{a}an; 由于辉夜去打 Gal Game 去了,她希望智慧的你来帮忙。 你需要将这些数分成若干组,满足n\rm{n}n个数中的每一个数都恰好被分到了一个组中,且每一组至少包含一个数。 定义一组数的权值为该组内所有数的异或和。请求出一种分组方案,使得分出的所有组数的权...

cqbzlydd的博客 4786

异或运算

异或运算法则 如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位,所以 异或常被认作不进位加法。(来源于搜狗百科) 例如,计算 1011101^1000011: ...

菜鸟变大鸟的博客 2万+

异或差分,前缀异或的概念

最近在做cometoj看题解的时候发现了异或差分这一性质。随性就在本校oj上出了个题,题是离线的,可以O(n)过,如果改成在线的可以用树状数组在O(n*logn) 。 问题链接:http://acm.nyist.cf/problem/1605 问题描述 与差分相似,我们构建一个异或差分数组B,那么B[i]=A[i]^A[i-1].,B[1]=A[1]。这样A[i]就可以B[i]的前缀异或...

Dch19990825的博客 2296

异或和公式

对于一个数组nums,其前缀异或和数组prefixXor定义为:其中,prefixXor[0]通常定义为0,作为基准。

2402_87610050的博客 1408

知识整理——异或

今晚,要初步学会异或运算。 1、概念:(相同为0,不同为1,可以和物理中的非门一起理解) 异或,英文为exclusive OR,缩写成xor,异或(xor)是一个数学运算符。它应用于逻辑运算。 数学符号:”“⊕”,计算机符号为“xor”。 运算法则:a⊕b = (¬a ∧ b) ∨ (a ∧¬b) 文字解释:如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。 异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0

weixin_45883286的博客 8664
上一篇: Linux下推荐的常用应用程序列表
下一篇: PHP 中的use关键字
HackProgramer
博客等级 码龄12年 255粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值