两个变量交换的问题

  关于两个变量的值相互交换的问题,如int a = 3,int b=4,需要输出a=4,b=3,代码如下:

package com.aria.basic;
/**
 * 测试两个变量交换位置
 * @author aria
 *
 */
public class OperatorDemo4 {

    public static void main(String[] args) {
        int a = 1;
        int b = 3;
        /**
         * 第一种方式:    通过定义第三方变量的方式进行互换 
         */
        /*int temp = a;
        a = b;
        b = temp;    */    
        
        /**
         * 第二种方式: 通过运算符的方式
         */
        /*a = a + b;//a = 4;
        b = a - b;// a = 4 b = 3 运算完成后 b = 1
        a = a - b;//a = 4 b = 1 运算完成后 a = 3
         */    
        /**
         * 第三种方式通过位运算符文
         */
        a = a^b;//a = 1 b = 3 >>> a = 2;
        b = a^b;//a = 2 b = 3 >>> b = 1;
        a = a^b;//a = 2 b = 1 >>> a = 3;
        System.out.println(a);
        System.out.println(b);
    }

}

   第一种通过定义一个临时变量,保存a值然后将b的值赋给a,最后将temp中的值赋给b完成最终的交换结果(实际中运用的比较多)

    

  第二种方式:则是数学中的和差

  第三种方式:位运算方式

     在计算机中有原码,反码,补码,计算机中的数字全部由10通过不同的排列方式构成。

      参考博客: https://www.cnblogs.com/hanhuo/p/6341111.html

   如:3在计算机中的表现形式为:xxxx...11

       4在计算机中的表现形式为:xxxx...100

    

 

  

 

posted @ 2019-04-22 21:25  临之音  阅读(229)  评论(0编辑  收藏  举报