XOR

알고리즘 2015. 6. 12. 14:14

XOR

 

: x,y가 있을 때, 각 비트가 서로 다르면 1,  서로 같으면 0

 

x : 101

y : 011

------- XOR

     110

 

NOT(~), OR(|) , AND(&) 로 XOR 표현하려면?

 

- XOR = (x'y + xy')

하나씩 의미를 확인해보자.

 

x'y : x의 반대와 y의 AND. 즉 x'y의 결과 값은, x의 반대의 비트와 y 비트 중 똑같이 1인 곳의 값이 1이 된다.

x' : 010

y : 011

-------- AND

    010

즉 , 의미는 x,y 두 비트를 비교했을 때, 값이 서로 다면서, x의 비트가 0인곳의 위치가 , 결과적으로 1이 나오게 하는 것이다.

 

반대로 xy'은, x,y 원본의 비트가 서로 다른데, y의 비트값이 0인 위치가 1이 되도록 하는것이 xy'이다.

 

결론

 

XOR = (x'y + xy') 은

(x,y의 비트값이 서로 다른데, x쪽이 0인 위치 + x,y의 비트값이 서로 다른데, y쪽 비트가 0인 위치) 를 더해준 값이된다.

(어차피 둘다 1이여도, XOR는 0 이 되야 하기 떄문에,  x,y의 비트가 서로 다르면서 한쪽이 0인 부분만 찾아서 합침으로써, 결과를 얻는다)

'알고리즘' 카테고리의 다른 글

Algorithm - 순열과 조합  (0) 2016.08.29
DFS,BFS  (0) 2015.07.09
KMP 알고리즘 (문자열 패턴 검색)  (0) 2015.05.29
[알고리즘] 퀵 정렬(Quick Sort)  (0) 2014.12.01
블로그 이미지

kuku_dass

,