본문 바로가기
언어

비트연산자: XOR 연산

by 땅호720 2024. 2. 15.

직사각형 나머지 한 변 찾기

def solution(v):
    x = v[0][0] ^ v[0][1] ^ v[0][2]
    y = v[1][0] ^ v[1][1] ^ v[1][2]
    answer = [x,y]
    return answer

 

 

 

비트연산자

a = 60, b = 13 이라 가정했을 때,

a = 0011 1100

b = 0000 1101

& AND 연산. 모두 참일때만 만족 (a & b) = 12 → 0000 1100
| OR 연산. 하나만 참이여도 만족 (a | b) = 61 → 0011 1101
^ XOR 연산. 하나만 참일 때 만족 (a ^ b) = 49 → 0011 0001
~ 보수 연산. (~a) = -61 → 1100 0011
<< 왼쪽 시프트 연산자. 변수의 값을 왼쪽으로 지정된 비트 수 만큼 이동 a << 2 = 240 → 1111 0000
>> 오른쪽 시프트 연산자. 변수의 값을 오른쪽으로 지정된 비트 수 만큼 이동 a >> 2 = 15 → 0000 1111

 

(a ^ b ^ b) = 60 → 0011 1100

 

0011 1100

0000 1101

__________

0011 0001 (49)

0000 1101

__________

0011 1100 (60)

 

0011 1100

0000 1101

0000 1101

_________

0011 1100

 

=> 짝수로 같은 수는 xor하면 0(0000 0000)이 출력되고, 0과 xor 연산한 수는 자기자신이 출력