2023. 4. 10. 13:49ㆍ컴퓨터과학/논리회로
오늘부터는 평소와는 좀 다르게, 프로그래밍 (Software)이 아닌 컴퓨터에 대해 기계적인(Hardware) 내용에 대해서 좀 이야기를 해볼까 합니다.
- 비트?
"컴퓨터는 '0' 과 '1' 로 동작한다" 라는 말을 들어보셨나요? 처음 들어 보신분들도 계실 수 있지만, 오늘은 그냥 "아~, '0' 과 '1'로 동작 하는구나~" 정도로 생각해주시면 감사하겠습니다.
'0'과 '1'로 동작한다는 말에서 눈치채신 분들도 계시겠지만,
네, 컴퓨터는 이진법(Binary)을 사용합니다.
단순히 이진수 하나만 사용하여서는 두가지의 상태밖에 표현하지 못하겠지만, 컴퓨터에서는 이진수의 조합을 사용하여 정말 다양한 상태를 표현할 수 있는데요. 예를 들어 이진수 4자리를 사용하는 컴퓨터는 총 16 (2 x 2 x 2 x 2) 의 상태를 표현할 수 있겠죠.
이진법(Binary) 과 이러한 숫자 자리 (Digit)를 사용한다하여, 컴퓨터는 흔히 비트(Bit)를 사용한다고 합니다.
우리는 1을 참(True), 0을 거짓(False)이라고 하기로 약속합시다!
쇼미더머니에서 말하는 비트(Beat)와는 다른 비트입니다.
- 논리연산?
논리연산은 컴퓨터가 받은 입력으로 새로운 비트정보를 만들어 내기위해 사용합니다.
기본적인 논리연산은 NOT, AND, OR이 있고, 추가적으로 XOR을 주로 많이 사용합니다.
하나씩 알아 보겠습니다.
- NOT (부정, !A, ~A, A')
우리가 흔히 알고 있는 영어 단어 "not"과 같습니다. (~~가 아니다)
not은 논리적 반대를 의미하는데, 컴퓨터는 0과 1밖에 표현하지 못하니, not 0 은 1, not 1 은 0 이 된다는 사실이 이해가되시나요?
BIT (X) | NOT X |
0 (F) | 1 (T) |
1 (T) | 0 (F) |
- AND (논리곱, A∧B, AB, A & B)
이제부터 소개해드릴 논리 연산자들은 모두 피연산자(비트)를 두개 이상으로 필요로 하는 연산자들 입니다.
AND연산은 모든 피연산자가 참(True) 이어야만, 참을 반환합니다. 즉 피연산자 중 하나라도 거짓(False)이라면, 거짓을 반환하는 논리연산을 실행합니다.
아래 표를 보시면 좀 더 이해가 잘 되실 것 같습니다.
Bit A | Bit B | A AND B | NAND |
0 | 0 | 0 | 1 |
1 | 0 | 0 | 1 |
0 | 1 | 0 | 1 |
1 | 1 | 1 | 0 |
- OR (논리합, A∨B, A+B, A | B)
OR연산은 피연산자중 하나라도 참의 값을 가지면 참을 반환하는 연산을 합니다.
아래 표를 통해 확인해 보겠습니다.
Bit A | Bit B | A OR B | NOR |
0 | 0 | 0 | 1 |
1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 |
1 | 1 | 1 | 0 |
- XOR (베타적 논리합, Exclusive OR)
XOR연산은 다른연산과 특이하게 입력된 피연산자의 값이 다를경우(입력비트가 2개일 경우) 참을 반환하는 연산을 합니다. 만약 피연산자의 갯수가 홀수 라면, 참의 갯수가 홀수일 경우 1, 짝수일경우 0을 반환합니다.
아래 표를 통해 확인 해보겠습니다.
Bit A | Bit B | A XOR B | XNOR |
0 | 0 | 0 | 1 |
1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 |
1 | 1 | 0 | 1 |
오늘 비트가 무엇인지와 기본적인 논리연산을 알아 보았습니다. 다음번에는 이를 활용한 몇가지 논리 회로를 직접 만들어보겠습니다.