[CS]OR,AND,XOR 연산자

CS / / 2021. 1. 20. 17:27

<C++ 기준>

int 변수는 32비트(비트란? 0 혹은 1로 되어있음) => 0 혹은 1로 되어있는 비트가 32개 붙어 있는 것.

ex) 0이 32개 (2진법)
0000 0000 0000 0000 0000 0000 0000 0000(원래 다 붙어있음)
int a = 0

0000 0000 0000 0000 0000 0000 0000 0001
int a = 1

0000 0000 0000 0000 0000 0000 0000 0010
int a = 2

0000 0000 0000 0000 0000 0000 0000 0011
int a = 3

0000 0000 0000 0000 0000 0000 0000 0100
int a = 4

0000 0000 0000 0000 0000 0000 0000 0101
int a = 5

0000 0000 0000 0000 0000 0000 0000 0111
int a = 7

0000 0000 0000 0000 0000 0000 0000 0110
int a = 6

< OR 연산자 >

101010
010101
------
111111
/* OR 연산자는 둘중에 하나가 1이면 무조건 1 */

< AND 연산자 >

101010
010101
------
000000

/* AND 연산자는 둘중에 하나가 0이면 모두 0 그러나 둘다 1이면 1 */

< XOR (exclusive OR) 연산자 >

0 XOR 0 = 0
1 XOR 1 = 0
1 XOR 0 = 1

/* XOR는 같으면 0 다르면 1 */

<연산자 표시>

AND &
OR |
XOR ^

XOR을 통해서 임시변수 혹은 추가 변수 없이 변수를 swap 할 수 있다.

2021/01/19 - [CS] - tmp(추가 변수)없이 swap 하기

 

tmp(추가 변수)없이 swap 하기

a = 4 b = 2 a = a ^ b # = a XOR b b = a ^ b # = a XOR b XOR b # = a XOR 0 # = a a = a ^ b # = a XOR b XOR a # = a XOR a XOR b # = 0 XOR b # = b print(a) # 2 print(b) # 4

parase.tistory.com

 

'CS' 카테고리의 다른 글

tmp(추가 변수)없이 swap 하기  (0) 2021.01.19
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기