`
jiangzhenghua
  • 浏览: 600062 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

交换两个数不使用第三方变量

 
阅读更多

题目很简单:
---------------------------------
--有两个整型变量:int a=2^31-1;
    int b=-2^31;要求不通过第三方变量,交换a,b的值?
--------------------------------------------------
  思路:不使用第三方变量,肯定在a,b上做文章,可以在一个变量上获取跟a,b有某种关系的值,再通过某种关系
   一一分别交换数值!
---------------------------------------------
   方法:
   1.如果是两个较小数值的数可以通过下面的方法解决:
    a=a+b;
    b=a-b;
    a=a-b;
------------------------------------------------------
   2.显然,本题的变量数值过大,如果采用方法1,会产生错误,数值超出整形范围,可以采用异或运算(^)

   提示:真异或假的结果是真,假异或真的结果也是真,真异或真的结果是假,假异或假的结果是假。就是说两个值不相同,则异或结果为真。反之,为假。简单点说就是异或的两个值'相同为假,不同为真'。

    a=a^b;
    b=a^b;
    a=a^b;
-------------------------------------------
   从上可以看出,方法2是个万能的方法,方法1只适合较小数值的运算!

分享到:
评论

相关推荐

    不用第三方变量交换两数的值

    以上就是一些在没有第三方变量的情况下交换两个数值的方法。需要注意的是,不同的语言和环境可能对这些操作有不同的处理方式,所以在实际应用中,应确保选择合适且安全的方案。在某些特定场景下,例如在多线程环境中...

    Python3之不使用第三方变量,实现交换两个变量的值

    以上这篇Python3之不使用第三方变量,实现交换两个变量的值就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 您可能感兴趣的文章:python交换两个变量的值方法对Python中实现...

    两个数字的交换,三种方法

    使用三种方法交换来个数字 方法一:使用第三方变量交换数据; 方法二:使用加减法,并且不使用第三方...方法三:使用异或方法交换,并且不使用第三方变量 思路:一个数异或另一个数偶次,都等于这个数本身。

    C#不借助第三个变量实现两整数交换

     如果不借助第三方变量,有几种实现的方法:  1.异或算法(这种方法不借助第三个变量,也不会产生溢出,比较安全,但整数类型)  int a = 10;  int b = 5;  a ^= b;  b ^= a;  a ^= b;  Console....

    变量交换方法

    在编程中,有时我们需要交换两个变量的值而不借助额外的临时变量。这通常是优化代码或者在某些特定场景下实现特定效果的需求。以下是四种常见的变量交换方法: 1. **通过第三方变量**:这是最直观也是最基础的方法...

    qt嵌入第三方应用实例

    "qt嵌入第三方应用实例"这个主题涉及到使用Qt库在Windows和Ubuntu操作系统中集成和控制外部应用程序,这是一种增强用户界面和功能的强大技术。下面我们将深入探讨相关的知识点。 首先,Qt是一个开源的C++图形用户...

    WinCC的远与第三方设备IEC104电力规约通讯快速入门.pdf

    通过以上步骤,操作者可以使用WinCC与第三方电力设备建立基于IEC104规约的通讯连接,实现数据的准确交换和远程控制。这对于电力自动化系统的稳定运行至关重要,同时也是系统集成和维护的基础技能。 在实际应用中,...

    对Python中实现两个数的值交换的集中方法详解

    #第2种:不引入第三方变量 x = x+y y = x-y x = x-y #第3种:推荐 x,y = y,x print("x=%d,y=%d"%(x,y)) 以上这篇对Python中实现两个数的值交换的集中方法详解就是小编分享给大家的全部内容了,希望能给大家一个参考...

    java基础学习心得.docx

    有多种方式可以实现变量交换,包括使用第三方变量、不使用第三方变量和使用异或运算符。 ### Request Controller Request Controller 也被称为 JSP Model 2 Architecture,是一种创建可维护的 JSP 系统的方式。它...

    java-基础要点总结-学习java必看.docx

    Java中可以使用第三方变量或不使用第三方变量来实现变量交换。 11. if和switch语句 Java中if和switch语句都可以用于判断,但是switch语句的效率更高。switch语句适用于判断的具体数值较少的情况,if语句适用于对...

    test1_java_

    描述中的第二个知识点是关于如何在不使用第三方变量的情况下交换两个整数的值。在大多数编程语言中,包括Java,这通常通过异或操作符(`^`)来实现。以下是具体的方法: ```java public class Main { public static ...

    施耐德M340的以太网通讯程序以及数据处理

    施耐德电气的M340 PLC系列,作为一款先进的工业控制产品,通过以太网接口能够实现程序下载、数据交换以及与其他支持以太网通讯的第三方设备之间的交互。本篇内容将围绕M340 PLC以太网通讯的关键技术和应用案例展开...

    方格取数1

    然后每一行包含三个整数,前两个表示矩阵的一个位置(行,列),第三个数字是该位置的数值。当读取到一个只包含0的行时,表示输入结束。 **输出格式:** 输出一个整数,表示两条路径中数字的最大和。 **解题策略:...

    c语言讲义(中文版)

    在变量交换问题中,通常有两种方法:一是借助第三方变量,二是不借助第三方变量。前者通过创建临时变量来实现交换,后者利用算术运算实现交换。 变量修饰符如`sizeof()`可以获取变量在内存中占用的字节数。不同类型...

    Android两个子线程之间的通信

    5. **EventBus**:这是一个第三方库,通过发布/订阅模式实现线程间通信。子线程发布事件,其他订阅者(可能在另一个子线程中)监听并处理。这种方式简化了代码结构,但需要额外的库依赖。 6. **LiveData和ViewModel...

    冒泡排序的原理及java代码实现

    当`array[j+1]`小于`array[j]`时,交换这两个元素。同时,为了便于观察排序过程,代码中添加了打印语句,显示每一轮比较和交换后数组的状态。 在`main`方法中,创建了一个未排序的数组,并调用`sort`方法对其进行...

    EDA/PLD中的用VC++6.0实现PC机与单片机之间的数据交换

    4. **第三方通信类**:如CSerial类,这类第三方库简化了串行通信的实现,只需理解并使用几个关键的成员函数,就可以方便地完成通信任务。这种方法对于非硬件专家来说更加友好。 在实际应用中,例如在固定式EBM气...

Global site tag (gtag.js) - Google Analytics