文档章节

异或的使用

无奈的初弦
 无奈的初弦
发布于 2014/06/03 18:53
字数 253
阅读 17
收藏 0
点赞 0
评论 0

1.异或运算公式.

  1. 交换律: a ^ b = b ^ a

  2. 结合律: a ^ b ^ c = ( a ^ b ) ^ c = a ^ ( b ^ c)

  3. a ^ a = 0, 0 ^ a = a

  4. 自反性: a ^ b ^ a = b

  5. d = a ^ b ^ c 可以得出 a = d ^ b ^ c

2.可以利用异或解决的事

  1. 交换两个数

    交换两个数a,b可以有多种方式: 借助临时变量,如果不是用额外的变量可以做加减.

    a = a + b;

    b = a - b;

    a = a - b;

    或者做异或:

    a = a ^ b;

    b = a ^ b;( b = a ^ b ^ b 即 b = a)

    a = a ^ b;

  2. 选择不成对的某个数.

    先看一个例子:

    题目描述:给定2n + 1个数,除了有一个数字外,其他数字都出现2遍,求这个数.

    这个现在做起来比较简单了 这些数直接异或的结果就是那个数.

    两个相同的数异或为0,所以有n个0和那个数的异或,最终结果就是那个数本身

© 著作权归作者所有

共有 人打赏支持
无奈的初弦
粉丝 2
博文 25
码字总数 8623
作品 0
海淀
程序员
感受异或的神奇

什么是异或? Wikipedia的解释: 在逻辑学中,逻辑算符异或(exclusive or)是对两个运算元的一种逻辑析取类型,符号为 XOR 或 EOR 或 ⊕(编程语言中常用^)。但与一般的逻辑或不同,异或算...

囚兔 ⋅ 2016/04/29 ⋅ 0

与、异或的应用场景

& 的应用(权限值) 2^0=1, 相应 2 进制为 "0001" (在这里 ^ 我表示成"次方", 即: 2 的 0 次方, 下同) 2^1=2, 相应 2 进制为 "0010" 2^2=4, 相应 2 进制为 "0100" 2^3=8, 相应 2 进制为 "1000"...

well ⋅ 2011/06/28 ⋅ 0

遨游密码世界(二)

上一篇介绍了消息传递存在的问题:、、、。本篇介绍解决这些问题的方案,我们形象的把它们统称为 ,工具箱里的 列举如下: : 解决 的工具; : 解决 的工具; :解决 的工具 (接上文:遨游...

dkvirus ⋅ 02/22 ⋅ 0

一道逻辑题 - 我拿走了哪个数

有 1 到 10000 共 10000 个数,如果我从中随机拿走一个数,你如何知道我拿走了哪个? 相信很多人看过这道题,并知道答案,这几天和同事聊天时听到了这个问题,因为有过自己的思考过程,不妨记...

justjavac ⋅ 2014/09/16 ⋅ 4

对称加密算法的分组模式及其Go语言实现

  之前介绍的DES、3DES、AES加密算法,只能加密固定长度的明文。如果需要加密任意长度的明文,需要对明文分组加密。DES、3DES、AES等又称分组密码,而分组有很多模式,如:ECB模式、CBC模式...

莫名2013 ⋅ 01/03 ⋅ 0

位运算小结

位操作基础 位运算符 Java还有一个无符号右移运算符>>>,强行右移,左侧补零。以及还有相应的复合运算符。 位操作只能用于整形数据,对 float 和 double 类型进行位操作会被编译器报错。 注意...

有苦向瓜诉说 ⋅ 2017/11/19 ⋅ 0

一道逻辑题:我拿走了哪个数

原文链接:http://www.cnblogs.com/baiyanhuang/archive/2010/06/23/1763981.html 作者:@baiyanhuang 有 1 到 10000 共 10000 个数,如果我从中随机拿走一个数,你如何知道我拿走了哪个? ...

justjavac ⋅ 2014/07/30 ⋅ 13

leetcode - Find the Difference

Given two strings s and t which consist of only lowercase letters. String t is generated by random shuffling string s and then add one more letter at a random position. Find the......

南城小镇 ⋅ 2016/08/31 ⋅ 0

异或^的意义及其应用

一、异或 1、异或是一个数学运算符。他应用于逻辑运算。 2、例如:真异或假的结果是真,假异或真的结果也是真,真异或真的结果是假,假异或假的结果是假。就是说两个值不相同,则异或结果为真...

Pracy ⋅ 2010/03/10 ⋅ 0

异或数学运算 java

异或   1、异或是一个数学运算符。他应用于逻辑运算。其运算法则为a异或b=a'b或ab'(a'为非a)。   2、例如:真异或假的结果是真,假异或真的结果也是真,真异或真的结果是假,假异或假...

雪中漫步 ⋅ 2010/03/29 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java集合类总结笔记

一、集合类的层次关系 主要容器集合类的特点: ArrayList 一种可以动态增长和缩减的索引序列 LinkedList 一种可以在任何位置进行高效地插入和删除的有序序列 ArrayDeque 一种用循环数组实现的...

edwardGe ⋅ 9分钟前 ⋅ 0

spring RMI远程调用

RMI https://www.cnblogs.com/wdh1995/p/6792407.html

BobwithB ⋅ 15分钟前 ⋅ 0

Jenkins实践2 之基本配置

1 插件管理 系统管理->插件管理 在可选插件中可以自主安装插件 2 管理用户 系统管理->管理用户->新建用户 3 安全配置 系统管理->全局安全配置 授权策略 选择安全矩阵 然后添加现有的用户,赋...

晨猫 ⋅ 15分钟前 ⋅ 0

c++智能指针

1、是一种泛型类,针对指针类型的泛型类,会保存指针 2、重载了符号 *和-> 对智能指针使用这两个符号,相当于对保存的泛型使用这两个符号 3、当智能指针引用计数为0时,会去释放指针指向的资...

国仔饼 ⋅ 16分钟前 ⋅ 0

Spring Boot错误处理机制

1)、SpringBoot默认的错误处理机制 默认效果: 1)、浏览器,返回一个默认的错误页面 浏览器发送请求的请求头: 2)、如果是其他客户端,默认响应一个json数据 原理: 可以参照ErrorMvcAut...

小致dad ⋅ 17分钟前 ⋅ 0

ftp连接不上的终极办法 SFTP

假如FTP由于各种原因就是连不上,那么用SFTP协议吧,使用登录服务器的账号密码。

sskill ⋅ 22分钟前 ⋅ 0

Unity 围绕旋转角度限制(Transform.RotateAround)

在 Unity 中可以利用 Transform.RotateAround 围绕指定物体进行旋转,但某些情况下可能需要对旋转角度进行控制。我是先计算出预设角度大小,然后判断是否在限定角度范围内是则进行旋转。 相关...

大轩 ⋅ 23分钟前 ⋅ 0

阿里沙箱环境支付宝测试demo

阿里支付宝支付和微信支付,包括:阿里沙箱环境支付宝测试demo,支付宝支付整合到spring+springmvc+mybatis环境和微信整合到如上环境,功能非常齐全,只需要修改对应的配置文件即可,帮助文档...

码代码的小司机 ⋅ 25分钟前 ⋅ 0

JDK1.6和JDK1.7中,Collections.sort的区别,

背景 最近,项目正在集成测试阶段,项目在服务器上运行了一段时间,点击表格的列进行排序的时候,有的列排序正常,有的列在排序的时候,在后台会抛出如下异常,查询到不到数据,而且在另外一...

tsmyk0715 ⋅ 42分钟前 ⋅ 0

C++ 中命名空间的 5 个常见用法

相信小伙伴们对C++已经非常熟悉,但是对命名空间经常使用到的地方还不是很明白,这篇文章就针对命名空间这一块做了一个叙述。 命名空间在1995年被引入到 c++ 标准中,通常是这样定义的: 命名...

柳猫 ⋅ 47分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部