[정순채 칼럼] 컴퓨터가 생각하는 숫자의 이해

정순채의 사이버산책 / 정순채 경희사이버대 객원교수, 박인우 법률사무소 고문 / 2020-01-15 09:50:32
▲ 정순채 경희사이버대 객원교수, 박인우 법률사무소 고문
현대 사회는 디지털 매체가 기본이 되는 정보기술사회(ICT)다. 신체의 일부가 되어 전 국민의 90% 이상이 이용하는 스마트폰과 컴퓨터, CCTV, 네비게이션, 블랙박스, 디지털카레라 등 대부분의 전자제품에 디지털 매체가 기본을 이루고 있다. 사회 환경이 ‘0’과 ‘1’로 이루어진 디지털 혁명으로 인해 우리의 삶 전체에 영향을 미치고 있다.


초기의 컴퓨터는 데이터를 처리하기 위해 전등과 같은 진공관을 이용했다. 전등은 ‘켜져있거나’ 또는 ‘꺼져있거나’ 하는 둘 중에 하나의 속성을 가지고 있다. 하나의 전등은 두개의 속성을 표현할 수 있다. 즉 켜져 있는 속성(1)과 꺼져 있는 속성(0)이다. 이러한 속성은 우리가 사용하는 숫자와 비슷하다. 바로 2진수 속성이다.


우리가 일반적으로 사용하는 10진수는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 등 10개의 숫자로 구성되어 있다. 그래서 9의 다음에 10이 나오고, 99의 다음에 100이 나오게 된다. 이용할 수 있는 숫자 중 가장 큰 숫자가 9이기 때문입니다. 이러한 숫자 체계는 10개의 숫자를 가지고 이용한다고 해서 10진수라고 표현한다.


반면에 2진수는 ‘0’과 ‘1’이라는 두개의 숫자체계이다. 2진수 숫자체계에서는 1이 가장 큰 숫자이기 때문에 1의 다음에는10(10이 아닌 일영)이 나오고, 11의 다음에 100이 된다. 컴퓨터는 진공관의 속성 때문에 바로 이 2진수 체계를 사용한다. 이러한 진공관 하나를 비트(bit)라고 하며, 이것은 binary digit, 즉 2진수 숫자를 줄여서 만든 용어이다.


진공관 1개를 가지고 표현할 수 있는 2진수 숫자 개수는 ‘0’과 ‘1’ 두개이다. 진공관 2개를 가지고 표현할 수 있는 2진수 숫자 수는 00, 01, 10, 11 등 4개이다. 진공관 3개는 000, 001, 010, 100, 011, 110, 101, 111 등 8개의 2진수를 표현할 수 있다. 이런 방식으로 진공관의 숫자가 많아질수록 표현할 수 있는 2진수 수는 기하급수적으로 증가하게 된다.


컴퓨터가 진공관 2개를 가지고 데이터를 처리한다고 가정하면 2진수 숫자 개수는 00, 01, 10, 11 등 4개이다. 이때 ‘00’이라는 2진수는 “고양이”, ‘01’이라는 2진수는 “개”, ‘10’이라는 2진수는 “닭”을 표현하며, ‘11’이라는 2진수는 “돼지”를 표현한다고 가정해보자.


만일 컴퓨터가 데이터를 처리할 때 첫번째 진공관을 꺼놓고, 두번째 진공관을 켜놓게 되면(01) 컴퓨터는 이 정보를 보고 이것은 “개”를 의미하고, “개”라는 문자를 표시하게 된다. 마찬가지로 두개의 진공관을 다 꺼놓는 경우(00)에는 컴퓨터는 “고양이”를 표시하게 된다. 


컴퓨터는 사물을 표현하기 위해 여러 비트를 모아서 표현을 한다. 그런데 컴퓨터의 성능이 급격히 발달하고, 표현해야 하는 객체들이 증가함에 따라 bit로 표시하는 방식에 문제가 생긴다. 하나의 객체를 표시하기 위해 너무 많은 비트를 묶어야 한다는 것이다.


이와 같은 문제를 개선하기 위해서 2진수 숫자인 bit 대신에 8개의 비트를 묶어서 만든 바이트(Byte)로 데이터를 표시하게 된다. 즉 1 Byte = 8 bit라는 공식이 성립한다. 1 bit로 표현할 수 있는 상태는 2개이다. 그렇다면 1Byte로 표현할 수 있는 상태는 과연 몇 개일까? 바로 256이다. 8개의 비트로 구성되어 있어 숫자 개수는 28개가 되며, 즉 2x2x2x2x2x2x2x2 = 256이 된다. 컴퓨터는 기본적으로 Byte 단위로 데이터를 처리한다. 예외적인 경우에 그 바이트 안에 bit들을 가지고 계산할 때도 있다. 


사람은 사물을 인식하고, 표현하기 위해서 언어를 사용한다. 이 언어는 미리 특정한 사물을 표현하기 위해 어릴때부터 학습하여 암기하게 된다. 예를 들어 사람이 고양이라는 사물을 보고, “고양이”라고 표현한다. 이러한 표현방식은 사람이 미리 고양이라는 사물을 “고양이”라는 언어로 표현하도록 정해놨기 때문이다. 


컴퓨터도 마찬가지이다. 컴퓨터가 인식하는 사물은 컴퓨터 용어로 객체(Object)라고 표현한다. 이 객체는 컴퓨터가 표현할 수 있는 모든 것을 의미하며, 컴퓨터는 객체를 표현하는 방식을 미리 정해놓고, 그 방식에 따라 표현하게 된다. 


우리는 평소에 사물을 표시하기 위한 문자와 계산을 위한 숫자를 구분해서 사용하고 있다. 하지만 컴퓨터는 사물을 표시하는 것과 숫자를 표시하는 것을 우리처럼 구분하지 않고, 두개를 동일한 방법으로 표시한다. 컴퓨터가 생각하는 숫자로 사람이 사용하는 문자와 숫자를 같이 표시한다. 이것이 컴퓨터의 의사표시이다.

[ⓒ 아시아타임즈. 무단전재-재배포 금지]

정순채 경희사이버대 객원교수, 박인우 법률사무소 고문
정순채 경희사이버대 객원교수, 박인우 법률사무소 고문
이메일 다른기사보기
뉴스댓글 >