이진법 (TIL 88일차)

EenSung Kim·2021년 7월 2일
0
post-custom-banner

"1bit"


십진법

우리가 가장 익숙하게 사용할 뿐 아니라 수를 배울 때 가장 먼저 배우는 것이 바로 십진법입니다. 십진법은 0~9 까지의 수를 사용하는데요. 위키백과에 따르면 십진법은 고대 이집트 문명으로부터 나왔고, 인간이 10개의 손가락을 가진 것과 밀접한 관련이 있는 것으로 추정된다고 합니다.

세계에서 가장 널리 쓰이고 있는 진법인 만큼 사실 엄밀하게 그 의미가 무엇인지 모르고 사용하는 경우도 많을 것 같습니다. 그렇다고 제가 안다는 말은 아니구요. 늘 그렇듯 공부하면서 알게 된 것을 나름대로 풀어서 적어보려고 합니다.

앞에서 십진법은 0~9 까지의 수를 사용한다고 했는데요. 그 말은 9 다음의 수를 표현하기 위해 자리가 하나 증가하게 된다는 의미입니다. 우리가 의식하지 않아도 9 다음에 십의 자리에 1, 일의 자리에 다시 0 을 넣어 10 이라는 숫자가 온다는 것을 알고 또 사용하는 것이 사실은 십진법을 다루고 있는 것이죠.

말하지 않아도 모두가 경험적으로 알고 있는 십진법을 이야기하는 건 십진법을 이처럼 조금 자세히 이해할 수 있어야 다른 진법들(특히 2진법) 을 조금 더 쉽게 이해할 수 있어서입니다. 궁극적으로는 제목에 적은 이진법에 대해 정리해볼 예정입니다만 그 전에 다른 진법들을 한 번 짧게 알아보겠습니다.


여러 다른 진법들

우리에게 가장 익숙한 것이 십진법이긴 합니다만, 의외로 실생활에서 흔하게 마주칠 수 있는 여러 다른 진법들이 있습니다. 가장 흔하게 살펴볼 수 있는 진법은 시간의 단위에서 찾아볼 수 있는 12진법과 60진법입니다.

시간은 12라는 수를 기준으로 자리수가 다시 리셋이 됩니다. 십진법의 수로 비교해 생각하면 십진법이 9 라는 수 다음에 0 을 쓴다면 12진법은 11 이후에 0 (또는 12) 를 사용합니다. 만약 0~23 을 이용해 시간을 표현한다면 24진법이라고 볼 수도 있겠죠.

60진법은 분 또는 초를 셀 때 사용됩니다. 이 때도 마찬가지입니다. 60이라는 수가 되면 자리 수가 하나 올라가게 되고, 다시 0으로 초기화됩니다. 60초 === 1분 이라는 개념이 되죠. 따라서 60진법을 기준으로 십의 자리에 5 라는 숫자가 있다면(=== 5분), 우리는 50초가 아닌 5 * 60 = 300초 라고 바꾸어 계산하게 됩니다.


이진법

드디어 이진법입니다. 이진법은 간단히 말해서 0, 1 이 두 가지의 숫자로만 이루어진 진법입니다. 0, 1, 10 (십진법의 2), 11 (십진법의 3), 100 (십진법의 4) 이런 순서로 늘어나게 되죠.

이진법이 중요한 이유는 컴퓨터가 이해하는 언어가 이진법으로 이루어져 있기 때문입니다. 전기가 흐르거나, 혹은 흐르지 않거나, 이 2 가지의 상태를 나타낼 수 있는 아주 작은 소자가 모여 엄청난 연산을 해낼 수 있는 것이죠. Boolean 을 배울 때 1 을 truthy 한 값으로, 0 을 falsy 한 값으로 다루는 것도 이런 이진법의 특성 때문일 것 같습니다.

이진법의 덧셈과 곱셈은 아주 간단하다고 합니다. 덧셈의 경우에는 11 을 더하면 자리를 올려서 1 을 더해준다는 것만 기억하면 되구요. 곱셈의 경우에는 우리가 기본적으로 잘 알고 있는 것처럼 0 을 곱하면 0 이 되고 1 을 곱하면 자기 자신이 된다는 특성을 이용할 수 있다고 하네요.

글로 설명하기엔 조금 애매해 아래에서 덧셈과 곱셈이 어떻게 진행되는지를 한번 살펴보도록 하겠습니다. 검증해보고 싶으신 분들을 위해 2진법 계산기를 링크로 첨부하겠습니다.

덧셈
        1101  (십진법으로 13)
     +  1001  (십진법으로 9) 
     ---------
       10110  (십진법으로 22)
곱셈
        101  (십진법으로 5)
     *  110  (십진법으로 6)
     --------
        000
       101
   +  101
   ----------
      11110  (십진법으로 30)

구구단을 외울 필요 없이 01 을 더할 줄만 알면 계산이 가능할 정도로 아주 간단해보입니다. 조금만 더 생각해보면 컴퓨터가 이진법을 사용하는 이유와도 쉽게 연결이 되는 것 같구요. 컴퓨터의 가장 작은 단위가 bit 인 것도 이진법을 이해하면 쉽게 이해가 되는 것 같습니다.


이진법을 배우며 알게 된 잡다한 상식..

블로깅을 하면서 알게 되었습니다만, 인터넷 속도를 말하는 Mbps 라는 단위는 사실 Mega bit per second 의 약자라고 합니다. 따라서 우리가 흔히 사용하는 메가바이트로 환산하기 위해서는 1byte = 8bit 이므로 8로 나눠주어야 한다고 하네요.

윈도우를 사용할 때 운영체제가 32bit 인지 64bit 인지에 따라 설치해야 하는 파일이 다른 경우가 있었는데요. 32bit 운영체제를 사용하게 되면 최대 4GB의 램까지 밖에 사용할 수 없다고 합니다. 이는 32bit 로 나타낼 수 있는 숫자가 232, 약 43억까지인데, 4GB 의 메모리가 그 정도이기 때문이라고 하네요. (실제로는 3기가 정도라고 합니다.)


outro

목요일부터 금요일까지 컴퓨터 공학의 기초에 관해 배웠습니다. 워낙에 깊이가 있는 부분들이다보니 배운 내용들을 정리하기엔 아직 모자람이 있는 것 같아 오늘은 책을 통해 접한 이진법에 대해 간단히 정리해보았습니다. 주말을 이용해 배운 것들을 조금 더 정리해보고 넘어가야겠습니다.

profile
iOS 개발자로 전직하기 위해 공부 중입니다.
post-custom-banner

0개의 댓글