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
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
*
*/
标签:Java,转置,11110,int,length,数组,10100,datas
来源: https://www.cnblogs.com/zhao-teng-ass/p/13231160.html