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

+ Recent posts