美文网首页
互换两个变量值(不借助第三个变量)

互换两个变量值(不借助第三个变量)

作者: 码上看世界 | 来源:发表于2018-04-18 21:48 被阅读0次

C++ 算法

引言

在通常情况下,实现两个变量值的互换很简单,大家都知道利用第三个变量,但是,如果不能够使用第三个变量呢?我们就需要利用位运算来解决问题。

原理

假设有两个变量A和B, A = 0xed, B= 0x26,如果不借助第三个变量,我们可以通过以三个步骤实现互换他们的值;

步骤 结果
A = A^B A = 0xcb; B = 0x26
B = A^B A = 0xcb; B = 0xed
A = A^B A = 0x26; B = 0xed

代码实现

#include <iostream>
using namespace std;

void t_exchange(int A, int B) 
{
    cout << "初始值:" << endl;
    cout << "A:" << A << endl;
    cout << "B:" << B << endl;
    A = A^B;
    B = A^B;
    A = A^B;
    cout << "交换后的结果:" << endl;
    cout << "A:" << A << endl;
    cout << "B:" << B << endl;
}

int main()
{
    t_exchange(66, 99);
    system("pause");
    return 0;
}

作者:码上看世界
博客地址:https://www.jianshu.com/u/03297560b1f4
声明:引用请注明出处!

相关文章

  • 前端学习JS基本知识

    初识js js书写位置 JS-API介绍 js语法格式 变量 变量命名规范 不通过第三个变量,让两个变量值互换 变...

  • 互换两个变量值(不借助第三个变量)

    C++ 算法 引言 在通常情况下,实现两个变量值的互换很简单,大家都知道利用第三个变量,但是,如果不能够使用第三个...

  • python15个技巧

    1、为多个变量赋值 2、变量值互换 3、链式比较 4、any/all函数 5、用in代替or简化判断 6、if/e...

  • ES6解构赋值

    题目 题目1:用解构赋值实现两个变量值互换 题目2:用解构赋值实现函数默认参数 概念 解构赋值:从数组或对象中提取...

  • 不借用第三个变量,如何交换两个变量的值

    以int变量a和b,不借助第三个变量,交换两个变量的值 算数运算 方法一: a = a + b;b = a - b...

  • 附录C:Java语言中两个变量值互换

    时间:2018-07-17 作者:魏文应 一、需求说明 我们经常会把两个变量的值进行互换,比如: 我们希望对a ...

  • Block实现原理

    Block是带有自动变量值的匿名函数; 带有自动变量值在Block中表现为截获自动变量值; 自动变量值截获只能保存...

  • Shell 中单引号和双引号区别

    (1)单引号不取变量值 (2)双引号取变量值 (3)反引号`,执行引号中命令 (4)双引号内部嵌套单引号,取出变量...

  • 一月九号

    用户变量: 变量名:opencv 变量值:C:\opencv\opencv\build 变量名:path 变量值:...

  • 不借助第三个变量交换两个变量的值

    复习基础的时候发现了一个比较有趣的交换变量值的方法。通常我们交换两个变量的值往往需要使用如下代码。 如何不借助第三...

网友评论

      本文标题:互换两个变量值(不借助第三个变量)

      本文链接:https://www.haomeiwen.com/subject/xjgbkftx.html