int a = 10;int b = 20;

a=a^b; //a=10^20

b=a^b; //b=10^20^20;  //b=10

a=a^b; //a=10^20^10;  //a=20

看到这题,确实很疑惑,一个数被另一个数异或两次,为啥会不变,

首先把a和b变成2进制数

异或运算  相同为0,不同为1

a = 0 0 0 0 1 0 1 0;

b = 0 0 0 1 0 1 0 0;

第一次异或    a^b= 0 0 0 1 1 1 1 0;

第二次异或a^b^b= 0 0 0 0 1 0 1 0;

结论是确实如此

a^b^b == a^(b^b)

因为一个数异或自己等于 0000 0000,而 0000 0000异或任何数字,结果是任何数字本身

c = a^b

b=c^b  ==  b=a^b^b;

a=c^a  ==  a=a^b^a  == a = b^a^a  所以此时ab的值相互交换了

感觉异或和取反的性质很像.

一个数被异或两次等于没有异或,原理研究相关推荐

  1. 求两个数字的乘积,如果大于0,说明两个数字同号,如果小于0,说明两个数字异号,如果等于0,说明其中一个是0

    学了java基础东西,就写了这个编程,求两个数字的乘积,如果大于0,说明两个数字同号,如果小于0,说明两个数字异号,如果等于0,说明其中一个是0 首先程序要求我们输入两个数字,我就用了Scanner来 ...

  2. c语言怎么将两个整数变量值交换,C语言如何利用异或进行两个值的交换详解

    C语言异或运算 位运算符家族中,最常用的,某过于异或运算符. 异或运算符是指: 参与运算的两个值,如果两个相应位相同,则结果为0,否则为1.即:0^0=0, 1^0=1, 0^1=1, 1^1=0 例 ...

  3. java 1 2 等于_java 判断语句中一个等于号和两个等于号的区别是什么?

    展开全部 一个等于号 是赋值操作的意e5a48de588b63231313335323631343130323136353331333365633864思 比如 int i = 5 就是把i的值赋为5 ...

  4. 查找数组中两两之和等于X的整数对(C语言实现)

    王道数据结构线性章节的思维拓展 一个长度为N的整形数组A[1-N],给定整数X,设计一个时间复杂度不超过O(nlog2^n)的算法,查找数组中所有两两之和等于X的整数对(每个元素只输出一次) 书上有可 ...

  5. 【c语言】输入两个数,交换这两个数后,再输出

    <程序设计基础实训指导教程-c语言>杨莉 龚义建 科学出版社 ISBN 978-7-03-032846-5 p9 2.1.2 上机实训内容 [实训内容3] 编程实现:输入两个数,交换这两个 ...

  6. Python函数封装:利用正则表达式compile、findall对多组关键词进行模糊查询并返回统计个数,findall截取两个指定符号之间的内容

    Python函数封装:利用正则表达式compile.findall对多组关键词进行模糊查询并返回统计个数,findall截取两个指定符号之间的内容 目录 利用正则表达式compile.findall对 ...

  7. 三个等于号===和两个等于号==的区别

    两个等于号是只判断值是否相等: 三个等于号是即判断值是否相等,又判断类型是否一样: 举例: $str="1"; $num=1; if($str==$num){ print_r('t ...

  8. python两两组合_求数组中两两相加等于20的组合(Python实现)

    题目 求数组中两两相加等于20的组合. 例:给定一个数组[1, 7, 17, 2, 6, 3, 14],这个数组中满足条件的有两对:17+3=20, 6+14=20. 解析 分为两个步骤: 先采用堆排 ...

  9. 求两个数的最小公倍数; 两种方法

    个人博客网站:https://www.liuzhi.org.cn/ //#include<stdio.h> //求两个数的最小公倍数: 两种方法 //1 //int main() //{ ...

最新文章

  1. Winserver2012R2 部署密钥恢复代理
  2. Koadic的安装和使用---http c2远控工具
  3. 数字化转型的认识模型
  4. 分区供水条件口诀_经典口诀2020年一建市政管道篇
  5. char类型包括数字吗java_Java char 与 Character
  6. GNS3从入门到精通
  7. Python常见数据结构整理,分享给你们
  8. 【批处理】用netsh管理防火墙示例
  9. nginx多入口配置隐藏.php,Nginx配置tp5支持pathinfo以及隐藏入口文件
  10. Go、Java、C++,下一代测序工具开发谁更强?
  11. Cocos2dx 之 PhysicsHandler 简单实现
  12. 字符串算法 —— 两字符串相同的单词
  13. Ubuntu解压文件的方法
  14. 电力电子转战数字IC20220610day21——杂七杂八
  15. 信息技术智库丨月度大考试
  16. VUE笔记——B站狂神说
  17. 关于STM32的裸机多任务多线程心得
  18. 安卓开发为什么选择用Java语言
  19. ModelSim 实用知识:优化,SDF,覆盖率
  20. win7下ie6兼容测试之Windows7(win7)下 XP Mode 下载、安装、设置完全图解

热门文章

  1. S4/HANA ME21N创建PO 输出控制消息按钮丢失解决方法(切换EDI 输出模式BRF+至NAST模式)
  2. 完善的 fanuc发那科 Mitsubishi数控系统 用SDK方式数据采集,NC程序下发
  3. WEB Service WSDL
  4. HTTP1.1(十一)Cookie的格式与约束
  5. 交互设计中的5项视觉指导原则
  6. 免费申请下载SSL证书与证书的安装部署教程,网站服务由网站由http协议升级为https协议
  7. st18 android 5,高通MSM8255只要1K5!高性价比的安卓机推荐
  8. 事业群-部门-岗位辨析
  9. 阿里云轻量应用型服务器和ECS服务器比较
  10. go语言之map的使用