컴퓨터는 왜 2진수를 기반으로 할까?

컴퓨터가 2진법 체계를 사용하는 이유를 알아보자.

#knowledge #binary


왜 0과 1만 사용할까?

왜 컴퓨터는 0과 1로만 이루어진 2진수 체계를 사용할까? 우리가 흔히 사용하는 10진수 체계도 있는데, 왜 2진법 기반으로 설계가 되었을까?

그 이유는 컴퓨터를 구성하는 회로에서 발생되는 노이즈(Noise) 때문이다. 사전적인 의미의 노이즈를 살펴보면 다음과 같다.

시스템에서 전기적, 기계적인 이유로 발생하는 불필요한 신호, 데이터를 전송할 때에는 이로 인해 데이터가 달라지는 것을 막기 위하 전송하는 문자마다 미리 정해진 방법으로 검색을 한다. 이를 흔히 잡음이라고 한다.

앞에서 살펴본 것처럼 노이즈로 인하여 2진수 체계를 사용한다고 했지만, 데이터가 달라지는 현상은 2진수 체계에서도 발생한다. 하지만, 이진법 체계보다 더 높은 체계에서는 상대적으로 더 큰 문제가 발생한다.


컴퓨터와 2진법

컴퓨터는 2진수 표현을 전기적인 신호로 판단한다. 신호가 있으면 1, 없다면 0으로 말이다. 그렇다면 10진수 체계를 사용하는 경우에는 어떻게 될까? 신호에 대해서 10단계의 구분이 필요하게 될 것이다.

예를 들어 전기 신호의 크기가 0V(Volt)에서 5V라고 가정한다면, 10단계에서는 각 단계 별로 0.5V의 차이가 있을 것이다. 그런데 기계적인 결함 또는 이유로 2.3V가 전달된다면 어떻게 될까? 2.5V에 더 가깝기 때문에 다른 단계로 판단될 수도 있을 것이다. 이와 같은 이유로 2진수 체계가 더 안전할 수 있다고 할 수 있다.


아날로그와 디지털

이러한 전기적 신호인 디지털(Digital) 신호와 상반되는 아날로그(Analog) 신호를 기반으로 컴퓨터가 동작한다면 어떻게 될까? 디지털 출력판과 아날로그 출력판이 존재하는 아두이노(Arduino) 보드를 예시로 쉽게 생각해 볼 수 있다.

아두이노 보드의 LED 조명을 예로 들면, 디지털 출력은 완전히 켜진 상태와 완전히 꺼진 상태만을 표시할 수 있지만 아날로그 출력의 경우에는 완전히 켜진 상태부터 꺼진 상태까지의 모든 밝기를 임의로 설정해 표시할 수 있다.

정말 큰 차이지 않은가? 밀레니엄 시대에 접어들면서 아날로그 제품들이 대부분 디지털 제품으로 바뀌었다. 지금 우리 주변에서도 아날로그 제품을 찾기란 쉽지 않은 것 같다.





댓글을 남기시려면 Github 로그인을 해주세요 :D