Bitmask (1), "Bit operator"
본문 바로가기
C, C++/Data structure

Bitmask (1), "Bit operator"

by 조훈이 2021. 2. 9.

 Bitmask (1), "Bit operator"


 OR operator ( A | B ) 

  두 비트중 하나라도 1 이면 1 이다.

  • ex) 0 0 1 1 ⑵   |   0 1 0 1 ⑵  =  0 1 1 1 ⑵

 

 AND operator ( A & B ) 

  두 비트 다 1 이어야 1 이다.

  • 0 0 1 1 ⑵   &   0 1 0 1 ⑵  =  0 0 0 1 ⑵

 

 XOR operator ( A ^ B ) 

  두 비트가 같으면 1, 다르면 0 이다.

  • 0 0 1 1 ⑵   |   0 1 0 1 ⑵  =  1 0 0 1 ⑵

 

 NOR operator ( ~ A ) 

  모든 비트가 반전된다.

  • ~ 0 0 1 1 ⑵  =  1 1 0 0 ⑵

 

 SHIFT operator ( A << i , A >> i ) 

  A 를 i 비트만큼 이동시킨다.

  • int i = 3;
  • 1 0 1 1 ⑵  <<  i  =  1 0 1  1 0 0 0 ⑵  =  0 1 0 1  1 0 0 0 ⑵  // i 만큼 좌측으로 밀고, 그래서 생긴 빈 곳에우측에 0이 채워진다.
  • 1 0 1 1 ⑵  >>  i  =  1 ⑵  =  0 0 0 1 ⑵ // i 만큼 우측으로 밀고, 밀려난 비트들은 사라진다.

  shift operation 에서 '>>'은 arithmetic right shift operator 이다. '>>>' 로 표기하는 logical right shift operator 가 있는데 쉽게 말하면 '>>' 는 맨 좌측에 있는 sign bit (부호 비트) 를 유지하고, '>>>는' 유지하지 않는다. 아래 글에 sign bit 에 대한 글을 참고해보면 좋을 것 같다.

 

// link 준비중

 

728x90

'C, C++ > Data structure' 카테고리의 다른 글

이진 트리 (Binary Tree)  (0) 2023.01.14
세그먼트 트리 (Segment tree)  (0) 2021.08.03
힙[Heap], 삽입 및 삭제  (1) 2021.07.22
힙 [Heap], 최대힙/최소힙  (0) 2021.07.21
Bitmask (2), "자주 사용되는 형태"  (0) 2021.02.25

댓글