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

语言的变量交换

不用第三个变量交换两个变量在面试题或者笔试题中无数次被提到,事实上,有些答案是理论性的,不是准确的。以整型为例,如下对比不同交换方式的差异。

不同的交换方式

  • 利用中间变量
    c = a;
    00C02533 8B 45 F8 mov eax,dword ptr [a]
    00C02536 89 45 E0 mov dword ptr [c],eax
    a = b;
    00C02539 8B 45 EC mov eax,dword ptr [b]
    00C0253C 89 45 F8 mov dword ptr [a],eax
    b = c;
    00C0253F 8B 45 E0 mov eax,dword ptr [c]
    00C02542 89 45 EC mov dword ptr [b],eax
  • xchg汇编
    __asm xchg eax, a
    __asm xchg eax, b
    __asm xchg eax, a
  • 不用中间变量
    a = a ^ b;
    00AA10B0 mov edx,dword ptr [b]
    00AA10B3 mov ecx,edx
    00AA10B5 xor ecx,dword ptr [a]
    b = a ^ b;
    00AA10B8 xor edx,ecx
    00AA10BA mov eax,edx
    00AA10BC mov dword ptr [b],edx
    00AA10BF xor eax,ecx
    a = a ^ b;

不能仅仅通过指令个数确定三者的效率。


微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

欢迎关注。助您在编程路上越走越好!

相关文章:

语言的变量交换

不用第三个变量交换两个变量在面试题或者笔试题中无数次被提到,事实上,有些答案是理论性的,不是准确的。以整型为例,如下对比不同交换方式的差异。 不同的交换方式 利用中间变量c a; 00C02533 8B 45 F8 mov eax,dword ptr [a] 0…...

【muduo源码分析】「阻塞」「非阻塞」「同步」「异步」

欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 文章目录 引言何为「muduo库」安装muduo库阻塞、非阻塞、同步、异步数据准备数据准备 引言 从本篇博客开始,我会陆续发表muduo库源码分析的相关文章。感谢大家的持续关注!!…...

顶顶通呼叫中心中间件-机器人话术挂机后是否处理完成事件

前言 问题:机器人放音的过程中,如果用户直接挂机就会继续匹配下一个流程,如果匹配上的是放音节点,还会进行放音,那么在数据库表中就会多出一条放音记录。 解决方法 一、话术添加一个全局挂机节点 需要在话术中添加一…...

Springboot Mybatis 动态SQL

动态SQL <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""https://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace"com.wzb.SqlImprove2024…...

ORM的了解

什么是ORM&#xff1f;为什么要用ORM&#xff1f;-CSDN博客 C高级编程&#xff08;99&#xff09;面向资源的设计思想&#xff08;ORM&#xff09;_c orm-CSDN博客 ORM:Object-Relational-Mapping 对象关系映射 -------------------------- 我想对数据库中的表A进行增删改…...

关于大模型的10个思考

9月28日&#xff0c;第四届“青年科学家50论坛”在南方科技大学举行&#xff0c;美国国家工程院外籍院士沈向洋做了《通用人工智能时代&#xff0c;我们应该怎样思考大模型》的主题演讲&#xff0c;并给出了他对大模型的10个思考。 以下是他10个思考的具体内容&#xff1a; 1…...

CFR( Java 反编译器)---> lambda 表达式底层实现机制

一、安装教程 CFR&#xff08;Class File Reader&#xff09;是一个流行的Java反编译器&#xff0c;它可以将编译后的.class文件或整个.jar文件转换回Java源代码。以下是CFR的下载和使用教程&#xff1a; 下载CFR 访问CFR的官方网站或GitHub仓库&#xff1a;CFR的最新版本和所…...

《C++多态性:开启实际项目高效编程之门》

在 C的广阔编程世界中&#xff0c;多态性是一个强大而富有魅力的特性。它为程序员提供了极大的灵活性和可扩展性&#xff0c;使得代码能够更加优雅地应对复杂的业务需求。在实际项目中&#xff0c;理解和正确应用 C的多态性至关重要&#xff0c;它可以显著提高代码的质量、可维…...

UDS_5_输入输出控制功能单元

目录 一. 0x2F服务 一. 0x2F服务 InputOutputControlByIdentifier(0x2F)服务 用于替换服务器输入信号的值或内部功能控制电子系统的某个输出(执行器) •请求报文 A_Data Byte Parameter Name Cvt Byte Value #1 InputOutputControlByIdentifier Request SID M 0x2F dataI…...

CAD快捷键

CAD快捷键 功能快捷键描述直线L点PO多段线PL多用于描边构造线XL无限长直线射线RAY样条曲线SPL绘制光滑曲线–––圆弧A圆C矩形REC正多边形POL–––填充H圆角F倒角CHA–––打断BR分解X合并J–––创建块B插入块I 功能快捷键描述移动M复制CO擦除E修剪TR延伸EX拉伸S镜像MI偏移…...

Spring6梳理12——依赖注入之注入Map集合类型属性

以上笔记来源&#xff1a; 尚硅谷Spring零基础入门到进阶&#xff0c;一套搞定spring6全套视频教程&#xff08;源码级讲解&#xff09;https://www.bilibili.com/video/BV1kR4y1b7Qc 12 依赖注入之注入Map集合类型属性 12.1 创建Student类和Teacher类 Student类中创建了run…...

基于SpringBoot校园失物招领系统设计与实现

文未可获取一份本项目的java源码和数据库参考。 本课题的作用、意义&#xff0c;在国内外的研究现状和发展趋势&#xff0c;尚待研究的问题 作用&#xff1a;本课题的目的是使失物招领信息管理清晰化&#xff0c;透明化&#xff0c;便于操作&#xff0c;易于管理。通过功能模…...

推荐4款2024年热门的PDF转ppt工具

有时候&#xff0c;我们为了方便&#xff0c;需要将PDF里面的内容直接转换的PPT的格式&#xff0c;既方便自己演示和讲解&#xff0c;也让我们可以更加灵活的进行文件的编辑和修改。如果大家不知道要如何进行操作的话&#xff0c;我可以为大家推荐几个比窘方便实用的PDF转换工具…...

[深度学习]卷积神经网络CNN

1 图像基础知识 import numpy as np import matplotlib.pyplot as plt # 图像数据 #imgnp.zeros((200,200,3)) imgnp.full((200,200,3),255) # 可视化 plt.imshow(img) plt.show() # 图像读取 imgplt.imread(img.jpg) plt.imshow(img) plt.show() 2 CNN概述 卷积层convrelu池…...

从零开始,Docker进阶之路(三):Docker镜像与命令

一、Docker核心名词 镜像文件、容器、仓库 镜像&#xff1a;简单理解为就是一个安装包&#xff0c;里面包含容器所需要运行的基础文件和配置信息&#xff0c;比如&#xff1a;redis镜像、mysql镜像等。 镜像的来源方式&#xff1a; 1.自己做镜像&#xff0c;比如自己开发微服…...

【计算机网络】网络层详解

文章目录 一、引言二、IP 基础知识1、IP 地址2、路由3、IP报文4、IP报文的分片与重组 三、IP 属于面向无连接型四、IP协议相关技术1、DNS2、ICMP3、NAT技术4、DHCP 一、引言 TCP/IP的心脏是网络层。这一层主要由 IP 和 ICMP 两个协议组成。网络层的主要作用是“实现终端节点之…...

后端开发刷题 | 最小的K个数(优先队列)

描述 给定一个长度为 n 的可能有重复值的数组&#xff0c;找出其中不去重的最小的 k 个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字&#xff0c;则最小的4个数字是1,2,3,4(任意顺序皆可)。 数据范围&#xff1a;0≤k,n≤10000&#xff0c;数组中每个数的大小0≤val≤1000 要…...

【JavaEE】——阻塞队列,生产消费者模型(较难)

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯&#xff0c;你们的点赞收藏是我前进最大的动力&#xff01;&#xff01;希望本文内容能够帮助到你&#xff01; 目录 一&#xff1a;阻塞队列 1&#xff1a;概念 2&#xff1a;阻塞队列与普通队列比较 二&#xff1a;“生…...

makefile和CMakeLists/C++包管理器

make 大家可能会很奇怪&#xff0c;都什么年代了&#xff0c;还学makefile&#xff0c;cmake都有些过时了&#xff0c;为什么还要再学这个呢&#xff1f; 我是这么看待这个问题的&#xff0c;cmake跨平台性还是很有有优势的&#xff0c;有着多年积累的底蕴&#xff0c;借助大模…...

STM32 通过软件模拟 I2C 驱动 24Cxx 系列存储器

目录 一、AT24CXXX 系列存储器介绍1、基本信息2、寻址方式3、页地址与页内单元地址4、I2C 地址5、AT24CXX 的数据读写5.1 写操作5.1.1 按字节写5.1.2 按页写 5.2 读操作5.2.1 当前地址读取5.2.2 随机地址读取5.2.3 顺序读取 二、代码实现1、ctl_i2c2、at24c3、测试程序 I2C 相关…...

终极指南:Shenyu网关集成Polaris服务治理平台的完整教程

终极指南&#xff1a;Shenyu网关集成Polaris服务治理平台的完整教程 Shenyu网关作为基于Spring Cloud的高性能API网关&#xff0c;与Polaris服务治理平台的集成能够为企业级微服务架构提供强大的流量控制和动态配置能力。本教程将详细讲解如何从零开始配置Shenyu网关与Polaris…...

勒索病毒突发中招?紧急处置+自救恢复全指南(2026实战版),收藏这篇就够了!

勒索病毒突发中招&#xff1f;紧急处置自救恢复全指南&#xff08;2026实战版&#xff09; “文件全被加密&#xff0c;桌面弹出勒索信&#xff0c;要求48小时内支付比特币赎金”——勒索病毒的突发性让无数个人用户和企业猝不及防。一旦中招&#xff0c;核心文件被锁、业务中…...

无需复杂配置:Ollama一键运行EmbeddingGemma-300m嵌入模型教程

无需复杂配置&#xff1a;Ollama一键运行EmbeddingGemma-300m嵌入模型教程 1. 为什么选择EmbeddingGemma-300m 在当今AI应用蓬勃发展的时代&#xff0c;文本嵌入技术已成为构建智能系统的核心组件。然而&#xff0c;大多数嵌入模型要么体积庞大难以部署&#xff0c;要么性能不…...

Anomalib使用

Anomalib 是一个专注于视觉异常检测的开源库&#xff0c;旨在为开发者、研究人员和工业用户提供一站式解决方案。无论是检测生产线上的产品缺陷、监控视频中的异常行为&#xff0c;还是识别医疗影像中的病灶&#xff0c;Anomalib 都能胜任。其设计理念是简单、模块化、高效&…...

VSCode + Clang-Format 真·无缝集成指南:不止是保存时格式化

VSCode Clang-Format 真无缝集成指南&#xff1a;不止是保存时格式化 在C/C开发中&#xff0c;代码风格一致性往往成为团队协作的痛点。当你在深夜提交代码时&#xff0c;是否曾被同事提醒"缩进不对"或"括号换行风格不一致"&#xff1f;Clang-Format作为L…...

AI算力狂飙背后的秘密:当“稳重老哥”Gloo遇上“极速引擎”NCCL

AI工业大炼丹的隐秘功臣 当我们谈论深度学习的飞速发展时&#xff0c;聚光灯往往打在那些参数量动辄千亿的巨型语言模型上。然而&#xff0c;这些庞然大物能够在合理的时间内训练完成&#xff0c;绝非单台机器单张显卡的功劳&#xff0c;而是成百上千台计算节点共同协作的奇迹。…...

零基础玩转OpenClaw:星图平台百川2-13B镜像+自动化初体验

零基础玩转OpenClaw&#xff1a;星图平台百川2-13B镜像自动化初体验 1. 为什么选择星图平台OpenClaw组合 作为一个长期被本地环境配置折磨的技术爱好者&#xff0c;当我第一次听说星图平台提供预装OpenClaw和百川2-13B模型的"开箱即用"镜像时&#xff0c;内心是充满…...

运算放大器与电压比较器原理及应用对比

运算放大器与电压比较器的原理分析与工程应用1. 器件概述与符号对比1.1 基本符号结构运算放大器(Operational Amplifier)和电压比较器(Voltage Comparator)在原理图符号上具有完全相同的表现形式&#xff0c;均包含五个基本引脚&#xff1a;正电源引脚(VCC/V)负电源引脚(GND/-V…...

红海跟风:为何亚马逊上“更好的产品”往往死得最快

在亚马逊这片由算法和心智认知共同统治的战场上&#xff0c;无数跟随者都死于同一种“绝症”&#xff1a;相信只要产品比领导者“更好”&#xff0c;就理应获得成功。​ 他们投入大量时间优化参数、增加无关紧要的功能、或进行微弱的降价&#xff0c;却将最宝贵的“时机”和“心…...

OpenClaw版本升级:nanobot无缝迁移指南

OpenClaw版本升级&#xff1a;nanobot无缝迁移指南 1. 升级前的准备工作 上周我在本地开发环境遇到了一个棘手的问题——现有的nanobot实例无法兼容最新的OpenClaw框架功能。这迫使我不得不面对版本升级这个"技术债"。经过三天的反复尝试&#xff0c;我总结出一套可…...