> For the complete documentation index, see [llms.txt](https://emperorvv.gitbook.io/cs-curriculum/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://emperorvv.gitbook.io/cs-curriculum/class3_-discrete_mathematics-discrete-mathematics/ch11.md).

# 11. 부울대수

## 11.1. 부울대수의 개념

### 유래

부울대수는 19세기 중반 영국의 수학자이자 논리학자 조지 부울이 형식화한 대수체계다. **맞습니다. 조지 부울의 이름을 따서 Boolean(발음:불리언)이라 하는겁니다!**

### 부울대수(Boolean)

```
def
0 또는 1을 입력받아 0 또는 1을 출력하는 회로의 논리 계산을 형식화 한 것
```

### 부울값(Boolean Value)

```
def
디지털 신호, 0 또는 1
```

### 부울변수(Boolean Variable)

```
def
부울값 0 또는 1을 받는 변수
```

### 부울함수(Boolean Function)

```
def
n개의 부울변수와 부울 연산자로 구성되는 식
```

### 부울보수(Boolean Complement)

```
def
부울변수의 값을 반전시키는 **단항**연산자 (그냥 코딩할 때 '!' not operator랑 같은 뜻)
```

![그림](https://images.slideplayer.com/26/8747093/slides/slide_3.jpg)

### 부울합(Boolean Addition)

```
def
부울변수의 값을 더하는 이항 연산자(operand가 두개라 이항)로 부울변수의 값 중 하나만이라도 1이면 그 결과가 1이다.
```

그냥 우리가 알던 OR이랑 같은겁니다. 다만 표현을 기호로 + 라 합니다.

### 부울곱(Boolean Multiplication)

```
def
부울변수의 값을 곱하는 이항 연산자로 부울변수의 값 중 하나만이라도 0이면 그 결과가 0이다.
```

이건 그냥 AND랑 같습니다. 기호는 곱하기 같은 점하나가 찍힌놈을 습니다.

여러모로 3장 논리에서 공부한 연산자들과 비슷하다.

### 부울연산자 순위

괄호 > 부울보수 > 부울곱 > 부울합

### 부울대수법칙

3장 '논리'에서 두개의 논리식의 진릿값이 서로 같다면, 두 논리식을 동치(equivalent)라 하고 두 논리식은 필요에따라 서로 대체하여 사용할 수 있었다.
