一个数被异或两次等于没有异或,原理研究
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的值相互交换了
感觉异或和取反的性质很像.
一个数被异或两次等于没有异或,原理研究相关推荐
- 求两个数字的乘积,如果大于0,说明两个数字同号,如果小于0,说明两个数字异号,如果等于0,说明其中一个是0
学了java基础东西,就写了这个编程,求两个数字的乘积,如果大于0,说明两个数字同号,如果小于0,说明两个数字异号,如果等于0,说明其中一个是0 首先程序要求我们输入两个数字,我就用了Scanner来 ...
- c语言怎么将两个整数变量值交换,C语言如何利用异或进行两个值的交换详解
C语言异或运算 位运算符家族中,最常用的,某过于异或运算符. 异或运算符是指: 参与运算的两个值,如果两个相应位相同,则结果为0,否则为1.即:0^0=0, 1^0=1, 0^1=1, 1^1=0 例 ...
- java 1 2 等于_java 判断语句中一个等于号和两个等于号的区别是什么?
展开全部 一个等于号 是赋值操作的意e5a48de588b63231313335323631343130323136353331333365633864思 比如 int i = 5 就是把i的值赋为5 ...
- 查找数组中两两之和等于X的整数对(C语言实现)
王道数据结构线性章节的思维拓展 一个长度为N的整形数组A[1-N],给定整数X,设计一个时间复杂度不超过O(nlog2^n)的算法,查找数组中所有两两之和等于X的整数对(每个元素只输出一次) 书上有可 ...
- 【c语言】输入两个数,交换这两个数后,再输出
<程序设计基础实训指导教程-c语言>杨莉 龚义建 科学出版社 ISBN 978-7-03-032846-5 p9 2.1.2 上机实训内容 [实训内容3] 编程实现:输入两个数,交换这两个 ...
- Python函数封装:利用正则表达式compile、findall对多组关键词进行模糊查询并返回统计个数,findall截取两个指定符号之间的内容
Python函数封装:利用正则表达式compile.findall对多组关键词进行模糊查询并返回统计个数,findall截取两个指定符号之间的内容 目录 利用正则表达式compile.findall对 ...
- 三个等于号===和两个等于号==的区别
两个等于号是只判断值是否相等: 三个等于号是即判断值是否相等,又判断类型是否一样: 举例: $str="1"; $num=1; if($str==$num){ print_r('t ...
- python两两组合_求数组中两两相加等于20的组合(Python实现)
题目 求数组中两两相加等于20的组合. 例:给定一个数组[1, 7, 17, 2, 6, 3, 14],这个数组中满足条件的有两对:17+3=20, 6+14=20. 解析 分为两个步骤: 先采用堆排 ...
- 求两个数的最小公倍数; 两种方法
个人博客网站:https://www.liuzhi.org.cn/ //#include<stdio.h> //求两个数的最小公倍数: 两种方法 //1 //int main() //{ ...
最新文章
- Winserver2012R2 部署密钥恢复代理
- Koadic的安装和使用---http c2远控工具
- 数字化转型的认识模型
- 分区供水条件口诀_经典口诀2020年一建市政管道篇
- char类型包括数字吗java_Java char 与 Character
- GNS3从入门到精通
- Python常见数据结构整理,分享给你们
- 【批处理】用netsh管理防火墙示例
- nginx多入口配置隐藏.php,Nginx配置tp5支持pathinfo以及隐藏入口文件
- Go、Java、C++,下一代测序工具开发谁更强?
- Cocos2dx 之 PhysicsHandler 简单实现
- 字符串算法 —— 两字符串相同的单词
- Ubuntu解压文件的方法
- 电力电子转战数字IC20220610day21——杂七杂八
- 信息技术智库丨月度大考试
- VUE笔记——B站狂神说
- 关于STM32的裸机多任务多线程心得
- 安卓开发为什么选择用Java语言
- ModelSim 实用知识:优化,SDF,覆盖率
- win7下ie6兼容测试之Windows7(win7)下 XP Mode 下载、安装、设置完全图解
热门文章
- S4/HANA ME21N创建PO 输出控制消息按钮丢失解决方法(切换EDI 输出模式BRF+至NAST模式)
- 完善的 fanuc发那科 Mitsubishi数控系统 用SDK方式数据采集,NC程序下发
- WEB Service WSDL
- HTTP1.1(十一)Cookie的格式与约束
- 交互设计中的5项视觉指导原则
- 免费申请下载SSL证书与证书的安装部署教程,网站服务由网站由http协议升级为https协议
- st18 android 5,高通MSM8255只要1K5!高性价比的安卓机推荐
- 事业群-部门-岗位辨析
- 阿里云轻量应用型服务器和ECS服务器比较
- go语言之map的使用