文档章节

异或的使用

无奈的初弦
 无奈的初弦
发布于 2014/06/03 18:53
字数 253
阅读 17
收藏 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
64
0
遨游密码世界(二)

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

dkvirus
02/22
0
0
一道逻辑题 - 我拿走了哪个数

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

justjavac
2014/09/16
171
4
位运算小结

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

有苦向瓜诉说
2017/11/19
0
0
对称加密算法的分组模式及其Go语言实现

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

莫名2013
01/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

70.shell的函数 数组 告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析 20.16/20.17 shell中的函数: ~1. 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段...

王鑫linux
今天
2
0
分布式框架spring-session实现session一致性使用问题

前言:项目中使用到spring-session来缓存用户信息,保证服务之间session一致性,但是获取session信息为什么不能再服务层获取? 一、spring-session实现session一致性方式 用户每一次请求都会...

WALK_MAN
今天
6
0
C++ yield()与sleep_for()

C++11 标准库提供了yield()和sleep_for()两个方法。 (1)std::this_thread::yield(): 线程调用该方法时,主动让出CPU,并且不参与CPU的本次调度,从而让其他线程有机会运行。在后续的调度周...

yepanl
今天
4
0
Java并发编程实战(chapter_3)(线程池ThreadPoolExecutor源码分析)

这个系列一直没再写,很多原因,中间经历了换工作,熟悉项目,熟悉新团队等等一系列的事情。并发课题对于Java来说是一个又重要又难的一大块,除非气定神闲、精力满满,否则我本身是不敢随便写...

心中的理想乡
今天
42
0
shell学习之获取用户的输入命令read

在运行脚本的时候,命令行参数是可以传入参数,还有就是在脚本运行过程中需要用户输入参数,比如你想要在脚本运行时问个问题,并等待运行脚本的人来回答。bash shell为此提 供了read命令。 ...

woshixin
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部