当前位置: 首页 > news >正文

异或运算交换变量值

#include <stdio.h> #define swap(x, y) { \ //宏定义函数 x = x ^ y; \ y = x ^ y; \ x = x ^ y; \ } int main() { int a = 5, b = 3; swap(a, b); printf("a=%d, b=%d", a, b); return 0; }

异或运算的本质:记录两个二进制数的相同位与不同位,相同位标记为 0,相异位标记为 1

当 x 和 y 的位的差异被记录为 d 时,已知 y 和 d,一定能推出 x,即:

根据异或运算的性质,若已知两个数 x 与 y 的异或结果为 d(即 x ^ y = d),那么用 d 再与 y 进行异或运算,即可还原出 x(即 d ^ y = x)。

两个数交换的过程如下:

x

y

说明

原始值

0101

0011

-

x = x ^ y

0110

0011

此时的x记录的是原始x和y的差异。即x变成了d

y = x ^ y

0110

0101

实质上就是原始y与d异或,还原出了原始x,记录于y。即y变成了x

x = x ^ y

0011

0101

实质上就是原始x与d异或,还原出了原始y,记录于x。即x变成了y

我们可以总结出异或运算的几个重要性质:

1、交换律:若 x ^ y = d ,则 y ^ x = d;

2、逆运算:若 x ^ y = d ,则 d ^ y = x;

3、结合律:(x ^ y) ^ z = x ^ (y ^ z);

4、恒等律:x ^ 0 = x;

5、归零律:x ^ x = 0;

6、对合运算:x ^ y ^ y = x.

说明:

1、由交换律(1)、恒等律(4)和逆运算(2)可以推出归零律(5);

2、由结合律(3)和归零律(5)可以推出对合运算(6).

由以上性质可得:若 x ^ y = d ,则 x ^ d = y,y ^ d = x. 可以用这条性质进行简单的数据交换

另外,计算机还常用寄存器的取反运算,如:1001 ^ 1111 = 0110

在补码的运算中:

1、补码 = 原码的反码 + 1

2、原码 = 补码的反码 + 1

3、符号位与数值位一样参与运算,没有特别的处理方式

http://www.jsqmd.com/news/1304613/

相关文章:

  • git使用时记住用户名和密码
  • UART串口通信波形全解析:从起始位到停止位,掌握嵌入式调试核心技能
  • AI招聘视频转化率提升300%的7个底层逻辑:从脚本设计到算法推荐全拆解
  • 物理信息神经网络(PINN)在多变量回归预测中的应用与实践
  • Godot VR开发:信号系统构建模块化交互架构实践
  • 【Bug已解决】[Feature request] Support already-sharded DataLoaders in Accelerator.prepare 解决方案
  • AI 编译与推理优化领域 7 月精华:重要论文、开源项目突破与社区讨论总结
  • 从原理到实战:50Hz工频干扰与双T型陷波器设计全解析
  • MEMD信号分解技术:原理、实现与工业应用
  • 共情语音评测:从情感识别到AI情感智能的技术演进与应用
  • STM32按键扫描函数KEY_Scan设计:从消抖到事件处理的嵌入式实战
  • 如何让闲置电视盒子变身家庭Wi-Fi中心:TVBoxOSC网络共享完整指南
  • AI 辅助研发内部复盘(2/5):老项目改造的工程化实践
  • Python可视化五大激活函数及其导数:从Sigmoid到Softmax的深度解析
  • 零代码AI智能体实现招标文件高效解析与风险识别
  • 网口与串口深度解析:从硬件原理到实战调试的嵌入式通信指南
  • 三极管特性曲线深度解析:从原理到电路设计的实战指南
  • 写给 8 月的技术投资建议:AI 编译、推理优化与 Rust 生态的优先事项判断
  • 嵌入式系统开发入门:从核心架构到实战应用全解析
  • OpenAI首席科学家离职对AI开发者的影响与应对策略
  • 从困惑度到BLEU:深入理解NLP模型评估指标的核心原理与实战权衡
  • 5个神奇技巧:用Illustrator脚本让你的设计效率提升300%
  • VC++ 2013运行库深度解析:从DLL依赖到开源部署实践
  • 抖音内容下载终极指南:开源批量下载工具完全解析
  • 2026年度优选:徐州房地产纠纷律所服务团队业内推荐 - 装修教育财税推荐2026
  • 免费VR视频转换终极指南:3步让普通设备畅享沉浸式VR体验
  • FreeRTOS延时函数深度解析:从原理到实战避坑指南
  • GIS坐标系WKID详解:从核心概念到ArcGIS与SARscape实战应用
  • 【Bug已解决】[Feature Proposal] Add FunASR ASR Distributed Inference Examples 解决方案
  • 2026年8月东莞彩色标签纸类包装/彩盒纸类包装行业精选厂家_东莞市时岱包装制品有限公司 - 品牌宣传支持者