본문 바로가기
Problem Solving/Bitmasking

[비트마스킹] 비트마스킹 스킬 정리

by ggyongi 2022. 3. 24.
반응형

<or연산>
X or 1 = 1
X or 0 = X

<and 연산>
X and 0 = 0
X and 1 = X

 


- 기본 스킬 : 매우 자주 쓰임
bit이라는 이름을 가진 이진수가 있다고 해보자.
* 주의 : j번째라는 건 오른쪽부터 카운트한것. 즉 0번째는 제일 오른쪽 비트를 말하는 거임

 

1. bit의 모든 비트가 0인가?

bit==0

 

2. bit의 모든 비트가 1인가?

bit==(1<<n)-1


3. bit의 j번째 비트가 1인지 확인하고 싶을 때
bit&(1<<j)

4. bit의 j번째 비트를 1로 만들기
bit |= (1<<j)

5. bit의 j번째 비트를 0으로 만들기
bit &= ~(1<<j)

6. A&B==B

B의 모든 1은 A도 갖고 있음. 즉 A가 B를 포함함

 


- 고급 스킬(계속 추가 예정)

1. 2의보수와 and 연산 => 값이 1인 가장 작은 자리의 비트를 찾음
예시 : X & -X
1011&0101 = 0001
01000&11000 = 01000
01110&10010 = 00010

 

비전공자 네카라 신입 취업 노하우

시행착오 끝에 얻어낸 취업 노하우가 모두 담긴 전자책!

kmong.com

댓글