Java 面試題 交換兩個變量的值的兩種方式,使用異或 ^

一、開發常用的方式—第三方變量法

System.out.println("-------1.普通開發使用的第三方替換法----------");
int a1 = 1;
int b1 = 2;
int x ;
x = a1;
a1 = b1;
b1 = x;
System.out.println("交換後: a1 = "+a1);
System.out.println("交換後: b1 = "+b1);

Run:
-------1.普通開發使用的第三方替換法----------
交換後: a1 = 2
交換後: b1 = 1

二、使用 異或運算符號 ^

1,原理:

1. ^是異或運算符,異或的規則是轉換成二進制比較,相同爲0,不同爲1.
2. a^b^a = a

2. code

System.out.println("--------2.面試問到的異或計算法---------");
System.out.println("原理:a^b^a = a ");
int a2 = 1;
int b2 = 2;
a2 = a2^b2;
b2 = a2^b2;//b2 = a2^b2^b2 = a2
a2 = a2^b2;//a2 = a2^b2^b2 = b2
System.out.println("交換後: a2 = "+a2);
System.out.println("交換後: b2 = "+b2);

Run:

--------2.面試問到的異或計算法---------
原理:aba = a
交換後: a2 = 2
交換後: b2 = 1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章