[無에서 시작하는 컴퓨터&과학]

[컴퓨터][3] 스위치회로와 0과 1, 그리고 부울 대수(Boolean Algebra) - 2

core-basic 2024. 8. 8. 23:09
728x90

이전 글을 통해서 스위치 회로는 전류를 흐르지 못하게 하거나, 

다시 흐르게 하거나, 2가지 상태를 표현할 수 있고

이를 숫자기호 0과 1, 또는 문자기호 off/on으로 표기할 수 있다는 것을 알게 되었다.

그리고 이어서

위와 같이 2가지 상태만으로

세상을 어떻게 표현할 수 있을까에 대해서

부울 대수가 그에 대한 해결책임을 알 수 있었다.

이어서 부울 대수에 대해 더 자세히 탐구해 보겠다.

 

[컴퓨터][2] 스위치회로와 0과 1, 그리고 부울 대수(Boolean Algebra) - 1

※ 해당 게시글은 주제를 탐구하면서 주관적인 생각을 정리 한 글입니다.이전 글을 통해서 컴퓨터가 근본적으로 어떻게 동작하는지 알아보았다.요약해 보면컴퓨터는 근본적으로 전류를

core-basic.tistory.com

따라서 이번글의 주제도

< 스위치회로와 0과 1, 그리고 부울 대수(Boolean Algebra) >


<부울 대수>

이전 글에서 설명했듯이 부울 대수는

참과 거짓으로 평가될 수 있는 모든 논리적 진술에 대해서

참(True) 또는 거짓(False), 2가지 상태 중 하나만 입력하고,
그 결과 역시 반드시
참(True) 또는 거짓(False), 2가지 상태 중 하나만 출력하는
 수 체계이다.

그렇다면 부울 대수를 삶에 적용시키면 어떨까


<부울 대수 예시>

 "덥고 비가 온다"라는 논리적 진술이 주어졌다고 하자.

이를 부울 대수에 적용시키면

덥다는 조건,  그리고(AND),  비가 온다는 조건으로 나눌 수 있다.

따라서 내가 생각하기에 덥다는 조건을 만족하면 참(1)을 입력한다.

그리고

내가 생각하기에 비가 온다는 조건도 만족하면 참(1)을 입력한다.

그 결과 두 조건이 모두 만족하므로 "덥고 비가 온다"라는 진술도

역시 참(1)이 된다.


<예시의 모호함>

하지만 위의 예시만 보면 무언가 모호한 부분이 있다고 느껴진다

어찌 보면 당연한 것처럼 느껴지기도 한다.

왜냐하면

자신이 느끼는 상황을 표현한 것이기에

자신이 참으로 느끼면 참이고, 거짓으로 느끼면 거짓인 것인 것이다.

즉, 위의 예시는 대상이 '자기 자신'으로 한정되어 있다.

따라서

'스위치 회로와 컴퓨터와 어떤 연관성이 있는가?'

라는 질문에 위의 예시만으로는 부족함이 느껴진다.


<설계자 입장에서의 부울 대수 예시>

만약 논리적 진술을 제공하는 진술자, 또는 설계자의 입장이라면,

더 나아가 회로의 입장이라면 그 대상은 특정할 수 없다.

이는 주어진 논리적 진술이 참일지 거짓일지 모르는 상태이다.

 

따라서 대수학에서 사용되는 미지수(x, y) 같은 것을 통해 수식을 작성해야 한다.

(물론 부울 대수에서 미지수의 값으로는 참과 거짓밖에 못 온다.)

따라서 논리적 진술 "덥고 비가 온다"에 대해서

덥다는 조건 자체를 미지수 H

비가 온다는 조건 자체를 미지수 R

이라 표현한다면

"H AND R"이라는 수식/함수와 비슷한 논리 표현식을 만들 수 있다.

이에 대해 사람들마다, 각자의 답 참(True) 또는 거짓(False)을 대입하면 된다.

그리고 이러한 내용을 컴퓨터, 스위치 회로에 대입해 보면

논리 표현식에 따라 스위치 회로를 구성하면 되고, 사용자가 1과 0을 입력하면 된다.

스위치 회로를 구체적으로 구성하는 방법은 다음 글을 통해서 탐구해 보겠다.


< 부울 대수 연산자 >

부울 대수에서는 기본적 연산자인 +, -, ×, ÷을 사용하지 않는다.

왜냐하면 집합, 조건, 상태 등 참과 거짓으로 평가될 수 있는 논리적 진술을

더하거나, 빼거나, 곱하거나, 나눌 수 없기 때문이다.

또, 연산자의 대상 즉, 피연산자가 숫자가 아니기 때문이다.

따라서 부울은 부울 대수의 피연산자(집합, 조건, 상태 등)에 대한 연산자를

새롭게 발명하였다.

AND, OR, NOT, XOR

 

AND ( 그리고, ∧, & )
두 조건이 모두 참일 때 참을 반환한다.

OR ( 또는, ∨, | )
두 조건 중 하나라도 참일 때 참을 반환한다.

NOT ( 부정, ¬,! )
조건이 참일 때 거짓을, 거짓일 때 참을 반환한다.

XOR (배타적 논리합, ⊕)
두 조건이 서로 다를 때 참을 반환한다.

그리고 추가로 AND, OR, XOR에 NOT을 추가한
NAND , NOR, XNOR이 존재한다.

 


따라서 숫자와 사칙연산으로 세상을 표현할 수 있듯이,

참과 거짓으로 평가될 수 있는 논리적 진술을 피연산자로 하고

AND, OR, NOT, NAND, NOR, XOR, XNOR 등을 연산자로 하는

논리 표현식으로 세상을 표현할 수 있다.

그리고 컴퓨터 회로를 구성할 수 있다.

 

 

이번 글은 요기서 마치며, 다음 글은 앞서 작성하였듯이

논리 표현식을 스위치 회로를 통해 구성하는 방법에 대해 탐구해 보겠다.


※ 해당 게시글은 주제를 탐구하면서 주관적인 생각을 정리 한 글입니다

728x90