美文网首页
Java 变量交换

Java 变量交换

作者: 久战王 | 来源:发表于2018-03-09 00:54 被阅读0次

一:先声明temp为临时变量,先把a装进temp,temp=a,那么此时temp里面的值已经不存在了,但是不重要,本身temp本身的值没有意义。

然后再a=b,那b的值装进a,此时a已经等于b值,a的值不存在,但是不重要,此时a值已经存在temp里了

再然后,b=temp,那么ab两个变量在此时就转换完成了。

总结:没有什么好处坏处,属于标准用法。

*代码如下

···

        temp=a;

        a=b;

        b=temp;

···

二:方法二不采用临时变量,直接在ab之间转换,弊端在于后期写程序如果数字过大超出int本身32位的值,ab相加容易爆。

*代码如下

···

        int a=4;

        int b=7;

        b=a+b;        // a=4  b=11

        a=b-a;        // a=7  b=11

        b=b-a;        // a=7  b=4

···

三:第三种转换形式运用到了位运算

解读:自己异或自己 = 0            任何一个数跟 0 异或是自身,所以 a ^ b ^ a 等于 b,a 出现两个进行抵消,所以得出结果为 b。

举例:自己异或自己 = 0 举例:自身异或 0 等于自身

实例操作:

int  a = 4

int  b = 7

我们先声明,a = 4        b = 7

a = a ^ b;        那么a就等于 4 ^ 7        得出结果a = 4 ^ 7(在这个表达式中a的值本身我们是不知道的,所以当前a = 4 ^ 7)

b = a ^ b;         那么前面本身a是等于4 ^ 7的,现在来看b的结果是b = 4 ^ 7 ^ 7   (解析,4 ^ 7是第一步得出来的结果, ^ 7是b当前本身的值,前面知识点提到异或概念就是两两抵消取最后奇数的值,所以当前b = 4)

a = a ^ b;     现在来看,这句表达式当中的,a和b的值已经不再是ab最先本身的值了,通过前面第一步和第二部的异或位运算 a = a ^ b当中的(a ^ b 这两个值是已经变更了最先的本值,现在这里面的        a=4 ^ 7,b = 4 )    解析:a = 4 ^ 7 ^ 4 ^ 7 ^ 7    通过运用异或两两抵消最后得出值是7,(4 7 4 7 7将两个7抵消,两个4抵消,最后还剩下一个7这就是结果),所以运行结果a = 7   b = 4,在此完成了交换。

*代码如下

···

        int  a = 4;

        int  b = 7;

        a = a ^ b;        //a = 4 ^ 7

        b = a ^ b;        //b = 4 ^ 7 ^ 7

        a = a ^ b;        //a = 4 ^ 7 ^ 4 ^ 7 ^ 7

···

相关文章

  • Java 变量交换

    一:先声明temp为临时变量,先把a装进temp,temp=a,那么此时temp里面的值已经不存在了,但是不重要,...

  • Java和C++的参数传递

    问题的起源 今天博主在用Java实现算法时,写了这样的代码:Java: 想调用exchange(a, b)交换变量...

  • js day01

    今天所学知识 1交换变量 2交换变量2

  • 不使用第三方变量,交换变量a和b的值

    下面是我用java实现不使用第三方变量进行两个变量的值交换的代码: 1、变量类型是整形() 方法一: int a ...

  • [转载] 六种流行的语言---C、C++、python、Java

    参考链接: 在C / C++,Python,PHP和Java中交换两个变量[https://www.imangod...

  • 交换变量

    方法一:解构表达式(仅限于JavaScript) 方法二:使用中间变量 方法三:使用算数运算符 方法四:使用按位操作符

  • 【Python学习】零基础学习Python-1

    第四节: 1)变量(不需要像C Java等一样加类型) 2)变量不能以数字打头 3)支持中文作为变量名 4)交换:...

  • Go语言之多个变量同时赋值三

    编程最简单的算法之一,莫过于变量交换。交换变量的常见算法需要一个中间变量进行变量的临时保存。用传统方法编写变量交换...

  • Golang入门一:变量

    变量声明 变量初始化 变量赋值 变量交换 匿名变量

  • 排序算法

    [toc] 常用八大排序算法的Java实现 交换两元素位置的三种方法 交换变量法 求和法 弊端在于如果 x 和 y...

网友评论

      本文标题:Java 变量交换

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