两个变量交换的问题
关于两个变量的值相互交换的问题,如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