1.1 불 대수
불 대수(Boolean algebra)는 참/거짓, 1/0, 예/아니오, 켜짐/꺼짐 같은 불 2진 값을 다룬다.
불 연산자 (Boolean operator)
And
- x * y
Or
- x + y
Not
- !x * y + x * !y
Nand
- Not-And의 줄임말
- Nand(x, y) == Not(And(x, y))
Xor
- exclusive or의 줄임말
- 2개의 변수 중 딱 하나만 1일 때 1이 된다.
Nor
- Not - Or에서 따온 이름
And, Or, Not이 다른 불 연산자에 비해 더 흥미롭거나 특별한 이유가 있을까?
바로 답하면 And, Or, Not에는 실제로 특별한 것은 없다.
- [And, Or, Not] 의 세 가지 기본 연산자는 모두 Nand로 표현할 수 있다.!
- 어떤 불 함수도 Nand 게이트만으로 구현할 수 있다는 뜻.
함수 | 결과 |
상수 0 | 0 |
I And | Ix * y |
1 x And Not y | 1 x * !y |
I Not x And y | 1!x * y |
Ty | ly |
Xor | x* !y + !x * yl |
Or | x + y |
Nor | !x * ly |
Equivalence | !x * !y + x * yl |
Not y | I ly |
If y then x | !y + x |
Not x | !x |
If x then y | !x + y |
Nand | !(x* y) |
상수 1 | 1 |
불함수
논리적인 조건에 따라 입력값에 대해 출력 값을 결정하는 함수이다.
일반적으로 참(True, 1)과 거짓(False, 0)으로 출력으로 표현된다.
진리표와 불함수
진리표는 논리 회로의 입력과 출력 값을 표로 정리한 것이다.
x | y | z | f(x, y, z) = (x Or y) And Not (z) |
0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 0 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
1 | 1 | 1 | 0 |
이런 결론이 나올 수 있다.
- x와 y 둘 중에 하나가 1이고, z가 0일 경우 무조건 1을 출력하게 되어 있다.
- 0과 1의 패턴은 진리표 3, 5, 7번째 행에서만 나타난다.
변수가 n개인 불 함수가 불 표현식으로 표현되면, 그 함수의 진리표를 항상 구성할 수 있다.
예를 들어, 전등 스위치를 생각해 보자.
스위치가 두 개 있고, 두 스위치가 모두 켜져야만 전등이 켜진다고 하자.
이 논리 회로를 진리표와 불 표현식으로 표현하면 다음과 같다.
A | B | 전등 |
TRUE | TRUE | TRUE |
TRUE | FALSE | FALSE |
FALSE | TRUE | FALSE |
FALSE | FALSE | FALSE |
불 표현식
A AND B
이것은 'A' 스위치와 'B' 스위치가 모두 켜져야만 전등이 켜짐을 의미한다.
요약
- 진리표는 논리 회로의 입력과 출력 값을 표로 정리한 것
- 불 표현식은 논리 회로의 출력 값을 수식으로 표현한 것.
- 진리표와 불 표현식은 논리 회로를 설계하고 이해하는 데 중요한 도구이다.
'서적 > 밑바닥부터 만드는 컴퓨팅 시스템' 카테고리의 다른 글
논리 게이트 (0) | 2024.04.10 |
---|---|
하드웨어(Hardware) (0) | 2024.04.09 |