컴퓨터 이진법 원리 - keompyuteo ijinbeob wonli

컴퓨터의 조상을 찾아서..

현대인들은 컴퓨터나 휴대폰 같은 IT기기를 많이 사용한다.

그 기기들은 현재를 살고 있는 인류에게 너무나 밀접하게 연관이 되어 있어, 아마도 그런 제품들이 없는 세상이란 상상조차 하기 힘들 것이다. 이렇게 우리의 곁에서 시간을 절약하게 해주고, 단순하고 지루한 작업에서 해방시켜주는 고마운 기계인 IT기기들... 그 중에서도 그런 편리한 모든 제품의 출발점이자 원조격이라 할 수 있는 것이 바로 컴퓨터(compute: 계산하다)이다. 

원래는 제2차 세계 대전 당시에 미 육군의 탄도의 궤적을 계산하기 위해 고안되었다고 한다. 당시의 컴퓨터의 크기는 는 커다란 사무실을 가득채울 정도의 크기였다고 한다. 

컴퓨터 이진법 원리 - keompyuteo ijinbeob wonli
최초의 전자식 진공관 컴퓨터인 에니악

당시의 컴퓨터의 성능은 현재 우리가 항상 가지고 다니는 스마트폰에 비한다면 그야말로 하늘과 땅 차이라고 할 수 있으니 세상의 발전 속도가 참 빠른 것이다...

그런데 이러한 컴퓨터의 발전사에 있어서 그 기계의 기본적인 동작의 원리에 대한 기초를 마련한 사람이 있었으니 오늘 우리가 한번 살펴보고 갈 인물이다. 그는 바로 '라이프니츠'라는 독일의 철학자이자 수학자이다. 학창 시절 수학 과목에서 한 번쯤은 들어보았을 만한 위인인데, 만유인력을 발견한 '뉴튼'과 더불어 수학계에서 그 유명한 미분적분을 동시에 발견한 사람으로도 많이 알려져 있다.

컴퓨터의 작동원리는 간단히 말하면, 있음과 없음 또는 전기가 들어옴과 꺼짐과 같은 상태를 '0'과 '1'이라는 수치에 대응시켜 논리적인 의미를 부여하고 또한 연산이 가능하도록 하는 것이 가장 밑바탕이 되는 원리이다. 이 동작에서 발전하여 덧셈과 뺄셈, 곱셈, 나눗셈의 사칙연산으로 점차 확장이 되는 것이다. 사칙연산이 가능하다면 모든 숫자의 계산이 가능하게 되고, 만약 모든 사물의 형태나 상태가 수치적으로 표현이 된다면 그야말로 세상의 어떤 것이라도(Anything) 계산이 가능하게 되는 것이다. 지금 우리가 살고 있는 4차 산업혁명 시대라는 것이 바로 그것이 가능한 때인 것이다.  

그렇다면, '라이프니츠'는 어떻게 해서 이러한 이진법에 대한 개념을 착안했을까? 

그것은 다름아닌 동양 사상에 내재된 태극의 원리에서 비롯되었던 것이다.!

'라이프니츠'는 당시 중국에 머물던 프랑스 예수회 선교사인 부베 신부를 통해 중국의 서적을 접하게 되었고, 주역에서 세상만물이 태극과 사상, 팔괘, 64괘로 사물이 발전해 나가는 논리적이고 신비로운 원리를 알게 되었고 그로부터 커다란 영감을 받게 된다. 그리하여 동양의 주역 사상에 대해 깊게 연구를 하게되었고 그 결과 이진법의 원리를 착안하여 사칙연산이 가능한 기계식 계산기를 제작했고, 이 연산 기계가 시간이 지나면서 기계식에서 전자식으로 점점 변모하게 되었으며 이후에 여러 사람의 노력을 거쳐 현재의 우리가 사용하는 컴퓨터의 형태로 발전하게 되었다. 

[사족]

모든 사물과 상황의 밑바탕에는 보이지는 않지만 근본적인 원리 혹은 원인이 숨겨져 있다.

그 원리와 원인을 이해해야만 비로소 그곳에서 비롯된 결과물을 자신이 원하는 방향으로 이끌 수가 있다는 점..

 ▼ 위키백과 참조

고트프리트 빌헬름 라이프니츠 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 고트프리트 빌헬름 라이프니츠(독일어: Gottfried Wilhelm Leibniz, 1646년 7월 1일 ~ 1716년 11월 14일)는 독일의 철학자이자 수학자이다. 라이프니츠는 책을 쓸 때 라틴어(

ko.wikipedia.org

컴퓨터 이진법 원리 - keompyuteo ijinbeob wonli

컴퓨터는 어떻게 숫자를 셀까?

1. 우리는 10단위로 숫자를 셉니다. 이것을 십진법이라고 합니다. 하지만 엿날옛적, 일부 고대 문화권에서는 2개 단위로 숫자를 묶어 센 적이 있습니다. 이것을 이진법이라 하는데요, 컴퓨터는 이 2진법 즉 2진수를 사용합니다.

2. 2진수란: 01, 단 두개의 숫자만을 사용하는 수입니다. 그래서 2진수라고 부릅니다. 아래는 2진수를 0부틔 15까지 나열해봅니다. 여러분이 보기 편하시도록, 가로안에 십진수를 써보겠습니다.

                                                          0, 1, 

                                                          10(십진수의 10이 아닙니다. 이진수에서는 2입니다), 11(십진수의 3),

                                                          100(4), 101(5), 110(6), 111(7)

                                                          1000(8), 1001(9), 1010(10), 1011(11), 1100(12), 1101(13), 1110(14), 1111(15) 이렇게 말립니다. 순서대로 0부터 15까지의 숫자를 표현해 본 것입니다.

3. 그렇담 왜 컴퓨터는 2진수를 사용하는 것일까요? 그것은 컴퓨터가 전기 신호로 모든 데이터를 처리하기 때문입니다. 전기가 흐르는 상태가 ON이고 전기가 흐르지 않는 상태가 OFF입니다. 전기가 ON일때는 1, 전기가 OFF일때는 0을 나타냅니다.

4. 컴퓨터의 크기를 나타내는 단위: 비트(Bit). 1비트는 한 행을 나타내는 단위로, 0이나 1의 값만 표현할 수 있습니다. 2비트는 아래 그림처럼 2행을 나타내며 0부터 3까지 4개의 값을 나타낼 수 있습니다.

비트(Bit)란?

바이트(Byte): 8. 8비트를 1바이트라고 합니다. 2=256개의 값, 0~255까지의 수를 표현할 수 있습니다.

킬로바이트(KB): 10. 10비트를 1KB라고 합니다. 2ⁱ⁰=1024개의 값, 0~1023까지의 수를 표현할 수 있습니다.

그리고 MB(메가바이트), GB(기가바이트), TB(테라바이트)가 있습니다. 1MB1024KB, 1GB1024MB, 1TB1024GB와 같은 값입니다.

이진수와 십진수

컴퓨터도 계산을 틀린다.

앞서 말씀드린 것처럼, 우리가 어떤 데이터를 컴퓨터에 입력하던 컴퓨터는 2진수로 모든 것을 치환해 계산합니다.  그런데 2진수로 바꿀 수 없는 값이 존재합니다. 이 때문에 컴퓨터도 계산을 틀리게 되는 것입니다.

컴퓨터는 전기 신호를 받는 기계입니다. 그래서 모든 정보를 01 로 치환해서 처리합니다. 하지만 소수점을 포함한 값 중에는 2진수로 치환할 수 없는 값이 있습니다. 예를 들어 10진수 0.12진수로 치환하면 0.0001100110011.......과 같이 무한대의 값이 됩니다.

따라서 0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1=1 이지만, 컴퓨터가 계산해낸 답은 10에 가까운 끝이 없는 무한소수의 값이 나올 것입니다.

오차를 줄이는 방법은?

가장 쉬운 방법은 소수를 정수로 변환해 계산한 후 다시 소수로 치환하는 방법이 있습니다. 예를 들어 ‘0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1=?’을 계산하고자 한다면,

0.1의 소수점 위치를 오른쪽으로 한 칸 옮긴다. :1

1을 열 번 더한다. : 10

10의 오른쪽에서 첫 번째 행의 위치에 소수점을 삽입한다.

다시말해 소수를 계산할 때는, 정수로 변환해 계산한 후, 다시 소수로 변환시켜, 오류를 줄입니다!

컴퓨터는 문자를 어떻게 표현할까?

컴퓨터는 문자 또한 전기가 들어옴(ON)’전기가 나감(OFF)으로 표현합니다. 전기가 들어올 때는 1, 전기가 나갈 때는 0, 이 두 가지로 숫자, 문자, 논리를 처리한다고 앞서 말씀드렸는데요, 이것을 2진수라고 합니다.

문자를 표현할 땐 어떻게 할까? 각각의 알파벳에 번호를 부여합니다. A65, B66, C67.... 만약 우리가 자판에 'A'를 입력한다면 컴퓨터는 652진수인 1000001로 인식합니다.

이렇게 알파벳에 번호를 부여하는 것을 문자표하고 하는데요, 일종의 약속입니다. 문자표에는, ‘아스키(ASCII)코드’, ‘KS X 1001 코드‘EUC코드’, ‘유니코드(Unicode)’ 등이 있습니다