美文网首页
异或在计算机领域的应用实例

异或在计算机领域的应用实例

作者: handSomeJoe | 来源:发表于2016-10-28 23:38 被阅读103次

性质


· 交换律:a xor b = b*a

· 结合律:a xor b xor c = a xor (b xor c)

· 自反性:a xor b xor a = b

应用一


在编程的时候,我们常会遇见两个数的互换。在此当中,我们往往会想到一个tmp来传递互换的数值,这样相当于多了一个变量。因此,我们寻求一种方式,不用tmp,直接对两个数进行互换:

a = a xor b

b= b xor a

a = a xor b

应用二


熟悉计算机组成的同学都应该对RAID有一定的了解,RAID的第3~6级的冗余就是异或的应用之一。假设有一个5磁盘的阵列,x0到x3保存数据,x4是奇偶校验盘,对于任意一位:

x4 = x3 xor x2 xor x1 xor x0

假设x1盘损坏,我们可以做如下运算:

x4 xor x1 xor x4 = x3 xor x2 xor x0 xor x1 xor x4 xor x1

x1 = x4 xor x3 xor x2 xor x0

因此损坏的数据就可以重新生成。

应用三


有一道算法题也是很好的一个运用实例。有两个元素均为整数的数组,两个数组唯一的区别是数组二比数组一多一个数字,这个数字是数组中出现过的。问题是用什么方法可以只遍历一遍这两个数组,从而得到多出来的那个数字:

t1 = a(0) xor a(1) xor a(2) xor a(3) ....... xor a(n)

t2 = a(0) xor a(1) xor a(2) xor a(3) ....... xor a(n) xor a(n+1)

result = t1 xor t2

result 就是所求的那个数字。

相关文章

  • 异或在计算机领域的应用实例

    性质 · 交换律:a xor b = b*a · 结合律:a xor b xor c = a xor (b xor...

  • 算法 | 动态规划

    动态规划算法是在计算机领域的一类算法,但是动态规划远远不止于计算机领域,在经济、生产、工程等领域广泛的被应用。 动...

  • 【嵌入式系统】(一)嵌入式系统概述

    通用计算机系统和嵌入式计算机系统在应用领域和技术特点上的相同点和不同点 * 在应用领域上,通用计算机系统不仅可以直...

  • 计算机基础知识

    自学整理记录,大神见笑 内容 计算机定义 计算机应用领域 计算机硬件 计算机软件 软件开发 计算机语言 人机交互 ...

  • 在Mac搭建OpenCv一站式开发环境

    0. 序言 人工智能时代,技术上离不开计算机视觉处理。计算机视觉处理主要应用于机器人领域、智能监控领域、健康医疗、...

  • 字节序-大头端小头端

    前言 字节顺序,又称端序或尾序(英语:Endianness),在计算机科学领域中,指存储器中或在数字通信链路中,组...

  • NLP领域中更有效的迁移学习方法

    摘要: 迁移学习在计算机视觉领域中应用广泛,而NLP领域才刚刚起步。本文介绍了NLP领域中的两种迁移学习方法,分别...

  • 智慧景区,从票务系统开始

    随着计算机技术的发展,计算机软件及相关控制硬件的应用已渗透到各个领域。在门票应用方面,较早就出现了电子票务系统。近...

  • Socket开发实战

    Socket实际开发中的应用 Socke的概念: socket 的原意是“插座”,在计算机通信领域,socket ...

  • NLP领域中更有效的迁移学习方法

    摘要:迁移学习在计算机视觉领域中应用广泛,而NLP领域才刚刚起步。本文介绍了NLP领域中的两种迁移学习方法,分别是...

网友评论

      本文标题:异或在计算机领域的应用实例

      本文链接:https://www.haomeiwen.com/subject/cbweuttx.html