int a, b, c;
a = 10;
b = 5;
c = a;
a = b;
b = c;
System.out.println(a + "," + b);
/*
a 와 b의 위치를 바꿀 때. 새로운 위치 c를 설정해서 바꿈.
*/
a = 10;
b = 5;
a = a ^ b;
b = b ^ a;
a = a ^ b;
System.out.println(a + "," + b);
/*
1010
0101 XOR연산
1111 를 a에 넣는다. 15.
0101
1111 XOR 연산
1010 을 b에 넣는다. 10
1111
1010 XOR
0101 을 a에 넣는다. 5
다른 새로운공간c를 사용하지 않고 바꾸는 방법,
*/
a = 17;
b = 13;
System.out.println(a);
a = a^b;
System.out.println(a);
/*
0001 0001
0000 1101 XOR연산
0001 1100 을 a에 저장한다. 28
*/
a = a ^ b;
System.out.println(a);
/*
0001 1100
0000 1101 XOR 연산
0001 0010 을 a에 저장한다. 17.
*/
즉 XOR 연산을 두번하면 자신의 값이 됨.
'쌍용강북교육센터 > 7월' 카테고리의 다른 글
0705_Ex13_Bit (0) | 2021.07.06 |
---|---|
0705_Ex12_Bit (0) | 2021.07.06 |
0705_Ex10_Bit (0) | 2021.07.06 |
0705_Ex09_Logical (0) | 2021.07.05 |
0705_Ex08_Logical (0) | 2021.07.05 |