본문 바로가기
(화) 전기전자

디지털에 대한 기본적인 이론과 불 대수

by 케케84 2021. 2. 17.

아날로그 신호는 자연의 연속적인 값을 그대로 옮긴 신호이다. 이에 반해 디지털은 0과 1로 표현하는 개념적인 신호이다.

 

간단하게 표현하면 아날로그 시계와 디지털 시계를 비교해보면 좋을 것 같다.

 

아날로그 시계는 초침, 분침, 시침이 모든 시간을 통과하면서 보여준다. 디지털 시계는 정확하게 그 시간이 되면 바뀌면서 시간을 보여준다. 

 

일단 디지털은 우리 눈에 명확하게 보여준다. 디지털 시계라고 하면 09:00, 09:01 이런식으로 표현해 줄 것이다. 하지만 디지털은 위에 말한 대로 0과 1을 표현한다. 사실 우리가 보는 09:00 이러한 시간은 표현하기 좋게 변환된 값이다.

 

위에서 말하였듯이 디지털은 0과 1이다. 사실 더 정확하게 말하면 0과 1도 사람이 알기 쉽게 표현한 것이다.

 

기계는 신호가 없다와 있다로 표현할 수 있다.

신호가 없으면 0, 신호가 있으면 1로 표현한다.

 

우리가 수치화 시켜서 0과 1로 표현한 것이고, 이 값을 우리가 알기 쉽게 표현한 것이 2진수이다. 수학시간에 2진수를 공부한 적이 있을 것이다. 컴퓨터는 사실 신호가 있다 없다의 신호를 0과 1로 표현하게 하고 그걸 2진수로 변환시켜 명령을 전달한다. 여기서 2진수를 기계어라고 우리가 표현한다. 인간이 기계에게 명령할 때 가장 기초적인 언어인 것이다.

 

 

그래서 정보처리 자격증을 공부하게 되면 진수 변환이 나온다. 전자공학을 공부하면 디지털 논리회로가 있는데 기초 부분에 보면 진수변환 단원이 나온다. 인간이 2진수를 이해는 하겠지만 사실 0과 1로 표현하면 너무 길다. 그래서 이걸 8진수와 16진수로 표현하는 것이다. 그것도 컴퓨터가 미리 변환해서 우리에게 보여주는 것이 다이긴 하지만 말이다.

2진수 4자리는 16진수 1자리로 표현이 가능하다. 

 

아날로그와 디지털의 차이를 조금 더 설명해보려고 한다.

다시 디지털 시계로 돌아가 보자. 우리가 보는 디지털 시계는 1초, 2초, 3초로 표현이 가능하다.

그렇지만 아날로그 시계는 1초, 1초에서 2초 사이? 뭐 이런식으로 표현이 가능하다.

읽는 사람의 기준에서 보는 시계가 아날로그 시계가 된다. 초침이 이동하면서 그 사이의 모든 값들을 표현이 가능하다는 것이다. 읽는 사람이 못 읽고 그 시간이 순간에 읽는 것이지만 말이다.

 

아무튼 디지털 시계도 그렇게 표현은 가능하다. 1.1초 1.101초 1.000111초 등 가능은 하지만 순간순간에 보여줘야 하는데 이 디지털 시계가 계속해서 흐르고 있다면 우리 인간의 눈으로는 1/10초 정도는 파악하지만 1/100초까지 표현한다면 의미가 없을 것이다.

 

인간은 효율적인 존재이기 때문에 굳이 저런 것들을 다 납득시키고 진행할 필요는 없어 보인다.

 

부~울, 불 대수

 

이러한 디지털을 인간의 논리로 쉽게 인지하도록 만든 수학적 모델이 있다. 가장 잘 알려진 부울식이다. 불 대수라고 불리기도 하고, 부울식 이런 식으로 표현하기도 한다. 일단 부울식이라고 부르겠다.

 

부울식을 이용하여 신호분류를 하고, 기호로 만들어 수학적으로 표현하였다. 이 방법을 회로에 적용시켜 회로 설계를 원할하게 하는데 도움이 되는 수학적 모델이다.

불 대수 (Boolean Algebra)
 - 19세기 중반 영국의 수학자 조지 불이 고안하고 형식화한 대수 체계
 - 논리 연산, 또는 불 연산이라고 불림
 - 프로그래밍, 디지털논리회로, 이산수학 등 다양하게 활용되고 있음

 

논리회로의 동작 표현

입력 출력
A B C
0 0  
0 1  
1 0  
1 1  

 

위의 표는 논리회로에서 2개의 입력값이 있을 때 1개의 출력 표를 나타낸 것이다. A와 B의 2개의 입력 단자가 있다면 출력은 총 4가지가 나온다.

 

위의 표에서

A가 신호가 없는 경우(0), B의 신호가 없는 경우(0)

A가 신호가 없는 경우(0), B의 신호가 있는 경우(1)

A가 신호가 있는 경우(1), B의 신호가 없는 경우(0)

A가 신호가 있는 경우(1), B의 신호가 있는 경우(1)

이렇게 표현할 수 있다.

 

이러한 신호에 따라 출력값이 나오는 것은 시스템에서 만들어지는데 이 기본 바탕을 불대수로 표현한 것이다.

 

 

불대수의 기본 연산

 

위의 그림을 보면 기본 연산을 표현하기 위하여 그림을 삽입하였다. 

 

일단 A와 B를 신호로 생각하면 쉽다.

지금은 중학교때 집합을 배우지 않는다고 하였는데 중학교때 집합 개념을 배운 기억이 난다.

 

교집합 (AND연산)

합집합 (OR 연산)

여집합 (NOT 연산)

 

기본적으로 3가지로 표현이 가능하다. 이 표현을 가지고 아래의 불 대수 공리를 생각하면 조금 도움이 될 것이다.

 

불 대수의 공리

 

[1] 어떤 논리변수 X는 2진수 0 또는 1의 논리값을 가진다.

[2] 0 · 0 = 0

[3] 0 · 1 = 1 · 0 = 0

[4] 1 · 1 = 1

[5] 0 + 0 = 0

[6] 0 + 1 = 1 + 0 = 1

[7] 1 + 1 = 1

 

이 값을 잘 생각하고 계산식을 표현하면 좋다.

여기서도 마찬가지 0은 신호가 없고, 1은 신호가 있다. 0은 false, 1은 true

 

논리 연산의 정리

 

[1] 교환법칙 

 A · B = B · A

 A + B = B + A

 

[2] 결합법칙

( A · B ) · C = A · ( B · C )

( A + B ) + C = A + ( B + C )

 

[3] 분배법칙

A · ( B + C ) = A · B + A · C

A + ( B · C ) = ( A + B ) · ( A + C )

 

 

!

 

글을 한참 쓰다가 말았다. 뭔가 뒷처리를 안한 느낌인데 그 이유가 설명이 없다. 다음에 써야지 하는데 설명이 될지 모르겠다. 수식을 표현하다 보면 한글워드가 참 잘 만들어짐을 느낀다. 분명 찾아보면 웹에서도 자유롭게 쓸 수 있는 수식 프로그램이 있을텐데 게을러서 안된다.

 

아날로그와 디지털을 공부하다보면 끝이 없다. 기본 개념부터가 말이다. 

댓글