Know/Java

ExclusiveOR 연산자의 번외게임

Marine™ 2005. 3. 17. 11:42
반응형


a와 b 서로 바꾸기

(1) a ^= b;
(2) b ^= a;
(3) a ^= b;

: 정수에서만 가능하다.

4비트만가지고 테스트해보면..


a : 1101
b : 1010
a ^= b : 0111

a : 0111
b : 1010
b ^= a : 1101 (처음의 a값과 같다)


a : 0111
b : 1101
a ^= b : 1010 (처음의 b값)


즉 이것은.. 아래와 같다..(라고 생각한다..)
맞는지는 모르겟따...

(1) a = a ^ b -> t1
(2) b = b ^ t1 -> t2 = b ^ a ^ b = b ^ b ^ a = 0000 ^ a = a
(3) x = a ^ b = t1 ^ t2 = t1 ^ t1 ^ b = 0000 ^ b = b


반응형