---
layout: post
title:  " 비트 마스크 (Bit Mask) "
categories: KeyPoint
tags: KeyPoint
author: goodGid
---
* content
{:toc}



### Empty 집합 & Full 집합 

``` cpp

int set = 0;
    
int set = (1 << 20) - 1;
 
```

---

### 원소 추가

``` cpp

set |= (1<<p);
 
```

---

### 원소 포함 여부 체크

``` cpp

if( set & ( 1<<p ) )
        cout << "p번째 원소는 집합안에 존재 " << endl;
 
```


---


### 원소 삭제

``` cpp

set &= ~(1<<p);
 
```

---

### 원소 토글

``` cpp

set ^= (1<<p);
 
```

---

### 모든 부분 집합 순회

``` cpp

for(int subset = set; subset; (subset-1) & set)
 
```

---


## Review

* 비트를 이용한 문제풀이시 사용될 만한 Code


---
layout: post
title:  " 비트 마스크 (Bit Mask) "
categories: KeyPoint
tags: KeyPoint
author: goodGid
---
* content
{:toc}



### Empty 집합 & Full 집합 

``` cpp

int set = 0;
    
int set = (1 << 20) - 1;
 
```

---

### 원소 추가

``` cpp

set |= (1<<p);
 
```

---

### 원소 포함 여부 체크

``` cpp

if( set & ( 1<<p ) )
        cout << "p번째 원소는 집합안에 존재 " << endl;
 
```


---


### 원소 삭제

``` cpp

set &= ~(1<<p);
 
```

---

### 원소 토글

``` cpp

set ^= (1<<p);
 
```

---

### 모든 부분 집합 순회

``` cpp

for(int subset = set; subset; (subset-1) & set)
 
```

---

### 비트로 덧셈 구현

``` cpp

int pivot = 1;
while ( pivot <= a || pivot <= b) {
if( (pivot & b) != 0 )
        a += pivot;    
pivot = (pivot << 1);
}
    

```


---


## Review

* 비트를 이용한 문제풀이시 사용될 만한 Code


Update Key Point Post " Bit Mask :: 비트로 더하는 코드 추가 "
Update Key Point Post " Bit Mask :: 비트로 더하는 코드 추가 "
