컴퓨터는 0과 1 이 두 가지의 신호로 작동한다.
그리고 보통 0은 전기적 신호의 '꺼짐(off)' 1은 '켜짐(on)'을 표현한다.
때문에 컴퓨터는 인간이 의사소통할 때 언어를 통해서 하듯이(물론 인간의 의사소통 중에는 표정과 같은 비언어적 표현도 존재하지만) 0, 1로만 구성된 '이진법(binary)'을 사용해 의사소통을 한다.
즉 컴퓨터의 언어는 이진수다.
그럼 인간이 언어를 사용할 때 그 언어를 표현하는 문자나 음성 같은 수단이 동반되는데, 컴퓨터의 언어 표현 수단은 무엇일까?
바로 비트(bit)가 그 역할을 한다.
쉽게 표를 정리하면 다음과 같다.
비트(bit)는 이진법을 뜻하는 binary의 bi와 10진수를 표현하는 기호(0부터 9까지)인 digit의 t를 합쳐 만든 표현이다.
1비트는 0과 1, 두 가지의 경우의 수를 갖는다.
따라서 8비트는 2의 8승이니까 총 256가지의 경우의 수를 갖고 이를 다시 1Byte로 나타낸다.
8bit = 1Byte = 256의 경우의 수
그럼 컴퓨터는 이러한 비트를 가지고 무엇을 표현할 수 있을까?
대표적인 경우는 예(True)/아니오(False)로 대답할 수 있는 논리 연산(logic operation)이 있다.
논리 연산자로는 불 대수(Boolean algebra)가 있는데
불 대수란 0과 1, 즉 어떠한 명제에 대해 참과 거짓을 비트에 적용시킬 수 있는 집합을 의미한다.
NOT | 논리적 반대를 의미한다. | a = True; NOT a = False |
AND | 두 개 비트가 둘 다 참일 경우에 참. | a, b = True; a AND b = True |
OR | 두 개의 비트 중 하나만 참이어도 참. | a = True, b = False; a OR b = True; |
XOR | eXclusive OR(배타적 or); 둘 다 참이 면 거짓. 둘 중 어느 하나 만 참이어야 한다. | a = True, b = True; a XOR b = False |
*당연한 이야기지만 XOR에서 두 개의 비트가 모두 False 일 때, a XOR b의 값은 False이다.
이러한 논리 연산을 사용할 때 연산의 법칙을 적용할 수 있는데,
이를 드 모르간의 법칙이라 한다.
드 모르간의 대표적인 예는 NOT(A or B) = NOT(A) AND NOT(B) 이다.
이 처럼 드 모르간의 법칙을 잘 사용한다면 AND 연산을 OR 연산처럼, 또는 OR 연산을 AND 연산으로 사용 가능하다.
드 모르간의 법칙을 더 잘 이해하고 싶다면
다음의 페이지를 참고하자.
자 그럼 다시 이 글의 목적으로 돌아오자
그래서 비트의 표현을 잘 사용해야 하는 이유는 뭘까?
아까 위에서 예를 들었듯이, 인간의 언어 표현 방식 중 문자를 색깔로만 표현한다고 가정해보자.
물론 색깔의 종류는 색의 조합과 명암으로 무수히 표현이 가능하지만,
인간의 눈에는 빨간색은 그저 빨간색일 뿐 rgb의 값이 1 하락했다 하더라도 미세한 차이를 구분할 순 없다.
그렇게 되면 그 표현 방식은 매우 비효율적인 것이다.
마찬가지로 비트 역시 효율적으로 계산해야 한다.
드 모르간의 법칙을 활용하는 이유 중 하나가 바로 이 때문이다.
드모르간의 법칙을 활용하면 보다 효율적으로 연산이 가능하고 효율적인 연산 처리 능력은 하드웨어의 성능과 직결된다.
한 줄 요약: 비트의 표현을 잘 사용해야 하는 이유는 보다 나은 성능을 구현하기 위해서다.
끝.
'CS' 카테고리의 다른 글
Abstract Data Type(추상적 자료형) (0) | 2021.08.13 |
---|---|
python으로 쉽게 설명하는 merge sort algorithm(합병 정렬) (1) | 2021.08.08 |
네트워크란? 인터넷이란? 그게 모야? (˵⚈ε⚈˵).feat(OSI 7 layers) (0) | 2021.07.23 |
컴퓨터/컴퓨팅 (3) | 2021.07.15 |