명제논리, 부울대수, 논리게이트
학습 전략과 이산수학·논리회로 학습 절입니다.
이번 절에서는 1장 2절에서 배운 0과 1을 가지고 참/거짓 판단을 배우는 시간입니다.
1장 2절에서는 이렇게 배웠습니다.
컴퓨터는 숫자를 0과 1로 표현합니다.1장 3절에서는 한 단계 더 갑니다.
컴퓨터는 판단도 0과 1로 처리합니다.즉,
참 = 1
거짓 = 0이라고 이해하면 됩니다.
이번 절 내용은 이산수학의 논리와 명제·부울대수, 논리회로의 부울대수와 논리게이트, 컴퓨터구조의 디지털 논리회로와 직접 연결됩니다.
이번 절의 큰 그림
이번 절의 학습 흐름은 다음과 같습니다.
명제논리
→ 부울대수
→ 논리게이트
→ 논리회로각각을 쉽게 말하면 다음과 같습니다.
| 개념 | 쉬운 뜻 |
|---|---|
| 명제논리 | 참/거짓을 따지는 논리 |
| 부울대수 | 0과 1로 계산하는 수학 |
| 논리게이트 | 0과 1을 입력받아 결과를 내는 회로 |
| 논리회로 | 논리게이트들을 연결한 회로 |
중요한 연결은 이것입니다.
명제논리의 참/거짓
= 부울대수의 1/0
= 논리회로의 전기 켜짐/꺼짐명제논리 기본
명제란?
명제는 참인지 거짓인지 분명하게 판단할 수 있는 문장입니다.
예를 들면 다음과 같습니다.
| 문장 | 명제인가? | 이유 |
|---|---|---|
| 2는 짝수입니다 | 명제 | 참/거짓 판단 가능 |
| 3은 10보다 큽니다 | 명제 | 거짓이라고 판단 가능 |
| 밥 먹어라 | 명제 아님 | 명령문 |
| 이 영화는 재미있습니다 | 애매함 | 사람마다 다름 |
| x는 5보다 큽니다 | 보통 명제 아님 | x 값이 정해져 있지 않음 |
명제는 반드시 참 또는 거짓 중 하나여야 합니다.
참 = 1
거짓 = 0명제 변수
명제를 매번 긴 문장으로 쓰면 불편합니다.
그래서 보통 p, q, r 같은 문자로 표현합니다.
p: 비가 옵니다
q: 우산을 가져갑니다라고 가정하겠습니다.
그러면
비가 오고 우산을 가져갑니다라는 문장은 이렇게 쓸 수 있습니다.
p ∧ q여기서 ∧는 “그리고”라는 뜻입니다.
논리연산과 진리표
기본 논리연산
명제논리에서 가장 중요한 연산은 5개입니다.
| 기호 | 이름 | 뜻 |
|---|---|---|
¬p 또는 ~p | NOT, 부정 | p가 아닙니다 |
p ∧ q | AND, 논리곱 | p이고 q입니다 |
p ∨ q | OR, 논리합 | p 또는 q입니다 |
p → q | 조건문, 함의 | p이면 q입니다 |
p ↔ q | 쌍조건문 | p와 q가 같음 |
시험에서는 보통 ∧, ∨, ~, →가 많이 나옵니다.
NOT: 부정
NOT은 반대로 바꾸는 것입니다.
참 → 거짓
거짓 → 참p: 비가 옵니다
¬p: 비가 오지 않습니다진리표는 다음과 같습니다.
| p | ¬p |
|---|---|
| 참 | 거짓 |
| 거짓 | 참 |
컴퓨터식으로 쓰면 다음과 같습니다.
| p | ¬p |
|---|---|
| 1 | 0 |
| 0 | 1 |
AND: 논리곱
AND는 둘 다 참일 때만 참입니다.
p ∧ qp이고 q입니다예를 들어 로그인 조건을 생각해 보겠습니다.
p: 아이디가 맞습니다
q: 비밀번호가 맞습니다p ∧ q즉,
아이디도 맞고 비밀번호도 맞아야 로그인 성공진리표는 다음과 같습니다.
| p | q | p ∧ q |
|---|---|---|
| 거짓 | 거짓 | 거짓 |
| 거짓 | 참 | 거짓 |
| 참 | 거짓 | 거짓 |
| 참 | 참 | 참 |
컴퓨터식으로 쓰면 다음과 같습니다.
| p | q | p ∧ q |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
AND는 둘 다 1이어야 1입니다.OR: 논리합
OR는 하나라도 참이면 참입니다.
p ∨ qp 또는 q입니다예를 들어 할인 조건을 살펴보겠습니다.
p: 학생입니다
q: 쿠폰이 있습니다p ∨ q라면,
학생이거나 쿠폰이 있으면 할인입니다.
진리표는 다음과 같습니다.
| p | q | p ∨ q |
|---|---|---|
| 거짓 | 거짓 | 거짓 |
| 거짓 | 참 | 참 |
| 참 | 거짓 | 참 |
| 참 | 참 | 참 |
컴퓨터식으로 쓰면 다음과 같습니다.
| p | q | p ∨ q |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
OR는 하나라도 1이면 1입니다.주의할 점이 있습니다. 논리학에서 OR는 보통 포함적 OR입니다.
즉,
p도 참이고 q도 참인 경우도 참입니다.
XOR: 배타적 OR
OR와 비슷하지만 다른 점이 있습니다. 바로 XOR입니다.
XOR는 둘이 다를 때만 참입니다.
| p | q | p XOR q |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
XOR는 정확히 하나만 1일 때 1입니다.예를 들어 스위치 두 개로 전등을 조작하는 회로를 생각할 수 있습니다.
스위치 상태가 서로 다르면 켜짐
스위치 상태가 같으면 꺼짐이런 경우 XOR와 관련됩니다.
논리회로 범위에도 AND, OR, NOT뿐 아니라 XOR, NAND, NOR 같은 논리게이트가 포함됩니다.
조건문 p → q
이산수학에서 학생들이 가장 많이 헷갈리는 부분이 다음과 같습니다.
p → qp이면 q입니다.p: 비가 옵니다
q: 길이 젖습니다p → q는
비가 오면 길이 젖습니다라는 뜻입니다.
진리표는 다음과 같습니다.
| p | q | p → q |
|---|---|---|
| 거짓 | 거짓 | 참 |
| 거짓 | 참 | 참 |
| 참 | 거짓 | 거짓 |
| 참 | 참 | 참 |
가장 중요한 것은 이것입니다.
p가 참인데 q가 거짓일 때만 p → q는 거짓입니다.즉,
약속을 했는데 결과가 안 지켜진 경우만 거짓입니다.
예를 들어 선생님이 말했습니다.
숙제를 하면 사탕을 줍니다.이 말이 거짓이 되는 경우는 하나입니다.
숙제를 했는데 사탕을 안 줬습니다.숙제를 안 한 경우에는 이 약속이 깨졌다고 보기 어렵습니다.
쌍조건문 p ↔ q
쌍조건문은 양쪽의 참/거짓이 같을 때 참입니다.
p ↔ qp일 때 그리고 그때에만 q입니다.p와 q가 같습니다.진리표는 다음과 같습니다.
| p | q | p ↔ q |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
둘 다 같으면 1, 다르면 0XOR와 반대라고 보면 됩니다.
진리표 전체 정리
p와 q가 있을 때 가능한 경우는 4가지입니다.
00, 01, 10, 11표로 정리하면 다음과 같습니다.
| p | q | ¬p | p ∧ q | p ∨ q | p → q | p ↔ q |
|---|---|---|---|---|---|---|
| 0 | 0 | 1 | 0 | 0 | 1 | 1 |
| 0 | 1 | 1 | 0 | 1 | 1 | 0 |
| 1 | 0 | 0 | 0 | 1 | 0 | 0 |
| 1 | 1 | 0 | 1 | 1 | 1 | 1 |
이 표는 반드시 익숙해져야 합니다.
논리식의 성질
항진명제, 모순명제, 사건명제
명제식은 결과에 따라 세 가지로 나눌 수 있습니다.
| 종류 | 뜻 | 예 |
|---|---|---|
| 항진명제 | 항상 참 | p ∨ ¬p |
| 모순명제 | 항상 거짓 | p ∧ ¬p |
| 사건명제 | 참일 때도 있고 거짓일 때도 있음 | p ∧ q |
항진명제
p ∨ ¬pp이거나 p가 아닙니다비가 오거나 비가 오지 않습니다이것은 무조건 참입니다.
모순명제
p ∧ ¬pp이고 동시에 p가 아닙니다비가 오고 동시에 비가 오지 않습니다이것은 불가능합니다.
그래서 항상 거짓입니다.
이산수학 예시문제에서도 모순명제를 묻는 문제가 나오고, p ∧ ∼p가 모순명제에 해당합니다.
논리적 동치
논리적 동치란 두 명제식의 진리값이 항상 같은 것입니다.
기호로는 이렇게 씁니다.
A ≡ BA와 B는 논리적으로 같습니다.가장 중요한 동치는 이것입니다.
p → q ≡ ¬p ∨ q즉,
p이면 q입니다는
p가 아니거나 q입니다와 같습니다.
처음에는 이상해 보이지만 진리표를 만들면 완전히 같습니다.
| p | q | p → q | ¬p ∨ q |
|---|---|---|---|
| 0 | 0 | 1 | 1 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
결과 열이 같습니다.
p → q ≡ ¬p ∨ q입니다.
부울대수
부울대수란?
이제 명제논리에서 부울대수로 넘어갑니다.
부울대수는 0과 1만 가지고 계산하는 대수입니다.
일반 수학에서는 숫자가 많습니다.
0, 1, 2, 3, 4, ...하지만 부울대수에서는 값이 두 개뿐입니다.
0, 11 = 참
0 = 거짓으로 이해하면 됩니다.
부울대수는 컴퓨터 회로를 설계할 때 핵심입니다. 논리회로 범위에 부울대수, 부울함수의 간소화, 논리게이트, 논리회로가 포함되어 있고, 이산수학에서도 부울식과 부울함수의 간소화를 다룹니다.
명제논리와 부울대수의 연결
명제논리와 부울대수는 사실 같은 구조를 다른 말로 표현한 것입니다.
| 명제논리 | 부울대수 | 논리회로 |
|---|---|---|
p ∧ q | x · y 또는 xy | AND 게이트 |
p ∨ q | x + y | OR 게이트 |
¬p | x' | NOT 게이트 |
| 참 | 1 | 전기 켜짐 |
| 거짓 | 0 | 전기 꺼짐 |
중요합니다.
논리곱 AND = 곱셈처럼 쓰지만 일반 곱셈과 완전히 같지는 않습니다.
논리합 OR = 덧셈처럼 쓰지만 일반 덧셈과 완전히 같지는 않습니다.1 + 1 = 1입니다.
참 OR 참 = 참이기 때문입니다.
일반 산수의 1 + 1 = 2와 다릅니다.
부울대수 기본 법칙
시험에 자주 나오는 부울대수 법칙을 정리하자.
항등 법칙
x + 0 = x
x · 1 = xOR에서 0은 영향을 주지 않습니다.
AND에서 1은 영향을 주지 않습니다.x + 0 = x0 + 0 = 01 + 0 = 1결과는 항상 x다.
지배 법칙
x + 1 = 1
x · 0 = 0OR에 1이 있으면 무조건 1
AND에 0이 있으면 무조건 0멱등 법칙
x + x = x
x · x = x같은 것을 여러 번 OR하거나 AND해도 결과는 그대로입니다.
보수 법칙
x + x' = 1
x · x' = 0x 또는 x가 아님 = 항상 참
x이고 x가 아님 = 항상 거짓이것은 아까 배운 항진명제, 모순명제와 연결됩니다.
이중 부정 법칙
(x')' = x아닌 것의 아니다 = 원래 것비가 오지 않는 것이 아니다 = 비가 옵니다교환 법칙
x + y = y + x
xy = yx순서를 바꿔도 결과가 같습니다.
결합 법칙
(x + y) + z = x + (y + z)
(xy)z = x(yz)묶는 위치가 달라도 결과가 같습니다.
분배 법칙
x(y + z) = xy + xz이것은 일반 수학과 비슷합니다.
부울대수에서는 이것도 성립합니다.
x + yz = (x + y)(x + z)두 번째 식은 처음 보면 낯설지만 부울대수에서는 중요합니다.
흡수 법칙
x + xy = x
x(x + y) = x이것은 시험에서 간소화 문제에 자주 쓰입니다.
x + xy여기서 x가 이미 참이면 전체가 참입니다. x가 거짓이면 xy도 거짓입니다.
x + xy = x입니다.
드모르간 법칙
이번 절의 핵심 중 하나입니다.
드모르간 법칙은 NOT이 괄호 전체에 걸릴 때 쓰는 법칙입니다.
반드시 정리해 둡니다.
(xy)' = x' + y'(x + y)' = x'y'전체 부정을 풀 때 AND와 OR가 서로 바뀝니다.
각 항은 부정됩니다.즉,
AND의 부정 = OR로 바뀌고 각각 부정
OR의 부정 = AND로 바뀌고 각각 부정예시 1
(AB)' = A' + B'예시 2
(A + B)' = A'B'예시 3
(A + BC)'전체를 부정하므로 먼저 OR가 AND로 바뀝니다.
(A + BC)' = A' · (BC)'그리고 (BC)'에도 드모르간을 적용합니다.
(BC)' = B' + C'(A + BC)' = A'(B' + C')논리회로 예시문제에서도 부울대수 등식이 맞는지 판단하는 유형이 나옵니다. 이런 문제에서 드모르간 법칙과 흡수 법칙이 자주 쓰입니다.
논리게이트와 회로
논리게이트란?
이제 논리회로로 넘어갑니다.
논리게이트는 0 또는 1을 입력받아서 0 또는 1을 출력하는 기본 회로입니다.
예를 들어 AND 게이트는 입력이 두 개입니다.
A, B 입력
Y 출력A와 B가 둘 다 1일 때만 Y가 1입니다.
A AND B = Y논리게이트는 컴퓨터 내부 회로의 기본 재료입니다.
기본 논리게이트 6개
시험에서 가장 중요한 논리게이트는 다음 6개입니다.
| 게이트 | 부울식 | 의미 |
|---|---|---|
| AND | Y = AB | 둘 다 1이면 1 |
| OR | Y = A + B | 하나라도 1이면 1 |
| NOT | Y = A' | 반대로 바꿈 |
| NAND | Y = (AB)' | AND의 반대 |
| NOR | Y = (A + B)' | OR의 반대 |
| XOR | Y = A ⊕ B | 서로 다르면 1 |
논리게이트 진리표
A, B 두 입력에 대한 주요 게이트 결과를 한 번에 살펴보겠습니다.
| A | B | AND | OR | XOR | NAND | NOR |
|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 1 | 1 |
| 0 | 1 | 0 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 | 1 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 | 0 | 0 |
이 표는 자주 봐야 합니다.
특히 NAND와 NOR는 헷갈리기 쉽습니다.
NAND = AND 결과를 뒤집음
NOR = OR 결과를 뒤집음NAND와 NOR가 중요한 이유
NAND와 NOR는 특별합니다.
왜냐하면 NAND만으로도 모든 회로를 만들 수 있고, NOR만으로도 모든 회로를 만들 수 있기 때문입니다.
그래서 NAND와 NOR를 범용 게이트라고 부릅니다.
| 게이트 | 특징 |
|---|---|
| NAND | 모든 논리회로 구현 가능 |
| NOR | 모든 논리회로 구현 가능 |
예를 들어 NOT을 NAND로 만들 수 있습니다.
A NAND A = (AA)' = A'즉, 입력을 둘 다 A로 넣으면 NOT이 됩니다.
NOR도 마찬가지입니다.
A NOR A = (A + A)' = A'논리식에서 회로로 바꾸기
논리식이 주어지면 회로로 바꿀 수 있어야 합니다.
Y = AB + C이 식을 읽어 보겠습니다.
AB는 A와 B를 AND한 것입니다.
AB + C는 AND 결과와 C를 OR한 것입니다.
A, B → AND → 결과
결과, C → OR → Y즉,
Y = AB + C는 AND 게이트 하나와 OR 게이트 하나로 만들 수 있습니다.
회로에서 논리식으로 바꾸기
반대로 회로를 보고 논리식으로 바꾸는 것도 중요합니다.
예를 들어 어떤 회로가 이렇게 되어 있다고 가정하겠습니다.
A와 B가 AND로 들어감 → 결과 X
X와 C가 OR로 들어감 → 출력 YX = AB
Y = X + CY = AB + C입니다.
시험에서는 회로 그림을 주고 식을 묻거나, 식을 주고 간소화된 회로를 고르게 합니다.
논리식 간소화
논리식 간소화란?
논리식 간소화는 복잡한 식을 더 짧게 만드는 것입니다.
왜 간소화가 중요할까요?
식이 짧아짐
→ 필요한 게이트 수가 줄어듦
→ 회로가 단순해짐
→ 비용과 오류 가능성이 줄어듦Y = A + ABA + AB = AY = A복잡한 회로가 단순한 회로로 바뀝니다.
간소화 예제 1
다음 식을 간소화해 보겠습니다.
Y = A + ABx + xy = x여기서 x는 A, y는 B다.
A + AB = AY = A간소화 예제 2
다음 식을 간소화해 보겠습니다.
Y = A(A + B)x(x + y) = xA(A + B) = AY = A간소화 예제 3
다음 식을 간소화해 보겠습니다.
Y = AB + AB'먼저 공통인 A를 묶습니다.
Y = A(B + B')B + B' = 1Y = A · 1A · 1 = AY = A간소화 예제 4
다음 식을 간소화해 보겠습니다.
Y = (A + B)(A + B')(x + y)(x + z) = x + yzx = A
y = B
z = B'(A + B)(A + B') = A + BB'BB' = 0A + 0 = AY = A시험형 연결 포인트
연산 우선순위
논리식에서 우선순위도 중요합니다.
보통 다음 순서로 계산합니다.
1순위: 괄호
2순위: NOT
3순위: AND
4순위: ORA + BC'는 이렇게 해석합니다.
A + (B · C')즉, C를 먼저 NOT하고, B와 AND하고, 마지막에 A와 OR합니다.
절대 이렇게 보면 안 됩니다.
(A + B)C'괄호가 없으면 AND가 OR보다 먼저입니다.
명제논리와 C언어 조건문 연결
이번 절에서 배운 내용은 C프로그래밍과도 연결됩니다.
C언어에서 조건문은 참/거짓을 판단합니다.
if (score >= 60) {
printf("pass");
}score >= 60은 명제처럼 참 또는 거짓이 됩니다.
또 C언어에는 논리연산자가 있습니다.
| C언어 | 뜻 | 명제논리 |
|---|---|---|
&& | 그리고 | AND |
| ` | ` | |
! | 아님 | NOT |
if (id_ok && pw_ok) {
printf("login");
}id_ok ∧ pw_ok와 같습니다.
즉, 아이디도 맞고 비밀번호도 맞아야 로그인됩니다.
C프로그래밍 범위에도 관계 연산자, 논리 연산자, 비트 연산자, 연산자 우선순위가 포함되어 있습니다.
자주 혼동되는 출제 포인트
혼동 포인트 1. OR는 둘 다 참이어도 참입니다
논리학의 OR는 보통 이렇게 동작합니다.
1 OR 1 = 1“둘 중 하나만”이라고 생각하면 XOR와 헷갈리기 쉽습니다.
| 연산 | 1, 1일 때 결과 |
|---|---|
| OR | 1 |
| XOR | 0 |
혼동 포인트 2. p → q는 p가 참이고 q가 거짓일 때만 거짓입니다
조건문 진리표에서 가장 중요합니다.
p → qp = 1, q = 0뿐입니다.
혼동 포인트 3. 부울대수의 +는 일반 덧셈이 아닙니다
1 + 1 = 1입니다.
왜냐하면 +는 OR이기 때문입니다.
혼동 포인트 4. 드모르간에서 AND와 OR가 바뀝니다
(AB)' = A' + B'(A + B)' = A'B'부정만 붙이고 연산자를 그대로 두면 틀립니다.
(AB)' = A'B'(AB)' = A' + B'혼동 포인트 5. NAND와 NOR는 결과를 뒤집은 것입니다
NAND = AND 후 NOT
NOR = OR 후 NOTA NAND B = (AB)'
A NOR B = (A + B)'이번 절의 핵심 정리
이번 절에서 최소한 이것들은 정리해야 합니다.
논리연산
| 연산 | 핵심 |
|---|---|
| NOT | 반대로 바꿈 |
| AND | 둘 다 참이면 참 |
| OR | 하나라도 참이면 참 |
| XOR | 서로 다르면 참 |
| 조건문 | 앞이 참, 뒤가 거짓일 때만 거짓 |
부울대수 법칙
| 법칙 | 식 |
|---|---|
| 항등 | x + 0 = x, x · 1 = x |
| 지배 | x + 1 = 1, x · 0 = 0 |
| 보수 | x + x' = 1, x · x' = 0 |
| 멱등 | x + x = x, x · x = x |
| 이중 부정 | (x')' = x |
| 흡수 | x + xy = x, x(x + y) = x |
| 드모르간 | (xy)' = x' + y', (x + y)' = x'y' |
논리게이트
| 게이트 | 식 |
|---|---|
| AND | Y = AB |
| OR | Y = A + B |
| NOT | Y = A' |
| NAND | Y = (AB)' |
| NOR | Y = (A + B)' |
| XOR | Y = A ⊕ B |
이번 절의 핵심 한 문장
이번 절의 핵심을 한 문장으로 정리하면 다음과 같습니다.
명제논리는 참과 거짓을 다루고, 부울대수는 그것을 0과 1의 식으로 바꾸며, 논리게이트는 그 식을 실제 회로로 구현합니다.
참/거짓 → 1/0 → AND/OR/NOT 회로확인 문제
문제 1
다음 중 명제인 것은?
① 밥 먹어라 ② x는 5보다 큽니다 ③ 2는 짝수입니다 ④ 이 영화는 재미있습니다
문제 2
p ∧ q가 참이 되는 경우는?
① p만 참일 때 ② q만 참일 때 ③ p와 q가 둘 다 참일 때 ④ p와 q가 둘 다 거짓일 때
문제 3
p ∨ q에서 p = 0, q = 1이면 결과는?
① 0 ② 1 ③ p ④ q'
문제 4
p → q가 거짓이 되는 경우는?
① p = 0, q = 0 ② p = 0, q = 1 ③ p = 1, q = 0 ④ p = 1, q = 1
문제 5
다음 중 모순명제는?
① p ∨ ¬p
② p ∧ ¬p
③ p → p
④ p ↔ p
문제 6
드모르간 법칙에 의해 (A + B)'는 무엇인가?
① A' + B'
② A'B'
③ AB
④ A + B
문제 7
AB + AB'를 간소화하면?
① A
② B
③ A + B
④ AB
문제 8
NAND 게이트의 식은?
① AB
② A + B
③ (AB)'
④ (A + B)'
정답과 해설은 절별 확인문제 정답해설에서 확인합니다.
다음 1장 4절은 조합논리회로와 순서논리회로입니다. 이번 절에서 배운 AND, OR, NOT 같은 게이트들이 모여서 가산기, 디코더, 멀티플렉서, 플립플롭, 레지스터 같은 실제 회로가 됩니다.