异或运算交换两个数的值

简介: 异或运算交换两个数的值

交换两个数的值(利用两个数的和,再做减法交换两个数)

a=5.b=10

a=a+b 此时a=15

b=a-b 此时b=10

a=a-b 此时a=5

开始把式子写成了a=a+b-a,后面写不下去了,一直思考为什么要有a=a+b 这个步骤,其实a=a+b-a推出来就是a=b,也就是把b的值直接赋值给a,后面当然没法做了,这是内存,值是会覆盖的。题目的解题思路就是利用两个数的和,所以必要要有第一步,接着后面的逻辑就清楚了。

交换两个数的值通常就都是创建一个临时变量,还有一种是利用的二进制,异或运算。

异或运算两种理解:

一种是相同为0,不同为1,

另一个角度是:

当左边的数为0时,其结果就和右边的数一样

当左边的数为1时,其结果就和右边的数取反

所以a ^ b就是:

左边的a,如果位数为0,表示原值a和b的这个位数是一样的,那么b的这个位数就不需要改

左边的a,如果位数为1,表示原值a和b的这个位数是不一样的,那么b的这个位数就需要取反。


后面还没有想的很清楚,还要再思考,等待后续。。


相关文章
|
存储 Prometheus 监控
Prometheus
【10月更文挑战第31天】Prometheus
273 2
|
11月前
|
存储 测试技术 对象存储
容器计算服务ACS单张GPU即可快速搭建QwQ-32B推理模型
阿里云最新发布的QwQ-32B模型拥有320亿参数,通过强化学习大幅度提升了模型推理能力,其性能与DeepSeek-R1 671B媲美,本文介绍如何使用ACS算力部署生产可用的QwQ-32B模型推理服务。
|
安全 Linux 数据安全/隐私保护
Linux权限揭秘“Root与Sudo”
Root用户是Linux系统中的超级用户,拥有对系统的完全控制权。Root用户几乎可以执行任何命令,修改任何文件,甚至删除系统上的所有内容。因此,Root用户的使用需要非常谨慎,以避免潜在的安全风险。
632 6
|
人工智能 编解码 网络架构
GenCast:谷歌DeepMind推出的AI气象预测模型
GenCast是由谷歌DeepMind推出的革命性AI气象预测模型,基于扩散模型技术,提供长达15天的全球天气预报。该模型在97.2%的预测任务中超越了全球顶尖的中期天气预报系统ENS,尤其在极端天气事件的预测上表现突出。GenCast能在8分钟内生成预报,显著提高预测效率,并且已经开源,包括代码和模型权重,支持更广泛的天气预报社区和研究。
1153 14
GenCast:谷歌DeepMind推出的AI气象预测模型
|
Java 测试技术 数据安全/隐私保护
📖Java零基础-while循环语句的深度解析
【10月更文挑战第6天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
491 1
ly~
|
人工智能 搜索推荐 自动驾驶
人工智能的应用
人工智能在多个领域广泛应用,包括:医疗领域的疾病诊断、药物研发和医疗机器人;交通领域的自动驾驶和智能交通管理;金融领域的风险评估、金融诈骗检测和投资决策;教育领域的个性化学习和智能辅导;工业领域的质量检测和生产流程优化;家居领域的智能家居系统,如智能音箱和智能灯具等,极大提升了各行业的效率与服务质量。
ly~
988 1
|
API Android开发 Kotlin
Android实战经验分享之如何获取状态栏和导航栏的高度
在Android开发中,掌握状态栏和导航栏的高度对于优化UI布局至关重要。本文介绍两种主要方法:一是通过资源名称获取,简单且兼容性好;二是利用WindowInsets,适用于新版Android,准确性高。文中提供了Kotlin代码示例,并对比了两者的优缺点及适用场景。
1648 1
|
调度 开发者 Python
python超详细的日期操作【建议收藏备用】
python超详细的日期操作【建议收藏备用】
332 0
|
测试技术
Win系统 - Microsoft Office 安装出现 1935 错误解决办法
Win系统 - Microsoft Office 安装出现 1935 错误解决办法
924 0
Win系统 - Microsoft Office 安装出现 1935 错误解决办法
|
Java 数据库连接 mybatis
mybatis判断批量操作是否全部执行成功
mybatis判断批量操作是否全部执行成功
671 1