public class DayE2 { public static void main(String[] args) { int [] datas=new int[]{1,2,3,4,5,6}; int length=datas.length; System.out.println("源數組"); //轉置前 for (int i = 0; i < datas.length; i++) { System.out.print(datas[i]); } System.out.println(""); //轉置中 int number1=datas[0]; int number2=datas[length-1]; for (int i = 0; i <length/2; i++) { number1=datas[i]; number2=datas[length-i-1]; number1=number1^number2; number2=number1^number2; number1=number1^number2; datas[i]=number1; datas[length-i-1]=number2; } System.out.println("轉置數組"); //轉置后 for (int i = 0; i < datas.length; i++) { System.out.print(datas[i]); } } }
結果截圖:

兩數交換時異或操作^的實現原理
/** * 異或^操作的原理:^表示的是異或,即兩個位比較相同則得0,不同則得1 * a=10 * b=20 * * a=a^b; * b=a^b; * a=a^b; * ^就是比較不同的位 * * 10的二進制是1010 * 20的二進制是10100 * 第一個a=a^b * a變成了11110,也就是30 * 1010 a * 10100 b * 11110 30 a變成30 * * 第二個b=a^b b變成01010 10 * 11110 a * 10100 b * 01010 b * * 第三個b=a^b b變成10100 20 * 11110 a * 01010 b * 10100 a * */
