文档章节

异或的使用

无奈的初弦
 无奈的初弦
发布于 2014/06/03 18:53
字数 253
阅读 18
收藏 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
177
4
一道逻辑题:我拿走了哪个数

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

justjavac
2014/07/30
545
13
位运算小结

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

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

没有更多内容

加载失败,请刷新页面

加载更多

Windows / Linux / MacOS 设置代理上网的方法汇总

本文汇总了 Windows / Linux / MacOS 设置代理上网的各种方法,总结如下: 1、设置系统代理(Windows、Linux、MacOS) 2、设置代理插件(Chrome、Chromium、Firefox、Opera、QQ等浏览器) 3、...

sunboy2050
昨天
2
0
自定义 Maven 的 repositories

有时,应用中需要一些比较新的依赖,而这些依赖并没有正式发布,还是处于milestone或者是snapshot阶段,并不能从中央仓库或者镜像站上下载到。此时,就需要 自定义Maven的<repositories>。 ...

waylau
昨天
1
0
徒手写一个es6代码库

mkdir democd demonpm initnpm install -g babelnpm install -g babel-clinpm install --save-dev babel-preset-es2015-node5 在项目目录创建两个文件夹 functional-playground ......

lilugirl
昨天
3
0
linux定位应用问题的一些常用命令,特别针对内存和线程分析的dump命令

1.jps找出进程号,找到对应的进程号后面才好继续操作 2.linux查看进程详细信息 ps -ef | grep 进程ID 3. dump内存信息 Jmap -dump:format=b,file=YYMMddhhmm.dump pid 4.top查看cpu占用信息 ...

noob_chr
昨天
2
0
Android TV开发-按键焦点

写在前面 按键焦点过程了解 2.1 dispatchKeyEvent 过程了解 2.2 焦点查找请求过程了解 1.2.1 第一次获取焦点 1.2.3 按键焦点 焦点控制 焦点记忆 应用场景 参考资料 [TOC] 1. 写在前面 工...

冰雪情缘l
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部