Posted
Filed under 서재

초등학생 시절, 게임 데이터를 에디트하기 위해 ‘울트라 에디터’라는 프로그램으로 세이브 파일을 열어젖혔을 때, 난생 처음 세상에 ‘16진법’이라는 기수법 체계가 존재한다는 사실을 알고 충격을 받았다. 당시까지 나는 10진법을 너무나도 당연한 것으로 여겼던 나머지, 십진법 자체를 수의 체계로 인지하고 있었고, 그래서 다른 방식으로 수를 표기하거나 이해하는 것이 가능하다는 사실을 받아들이기 어려웠다. 물론 수의 개념도 제대로 몰랐던 아주 어렸을 적, 종이 위에 어떤 수의 크기만큼 일일이 사물을 하나씩 그려 넣었던 것이 인류 최초의 기수법인 ‘1진법’ 표기였다는 것은 당연히 알 지 못 했고 말이다.

16진법의 존재는 내게 하나의 충격이자 공포였다. 나는 현재 전 세계의 인류가 공통적으로 사용하는 10진법 체계가, ‘수(數)’라고 하는 개념에 내재된 자연스러운 속성이어서 필연적으로 도출될 수밖에 없는 원리라고 믿었다. 그렇다면 설령 우주 저 멀리에 인류와 전혀 다른 외계 문명이 존재하더라도 반드시 10진법 체계는 동일하게 사용되고 있을 터였다. 하지만 또 다른 기수법의 존재는 사실상 10진법 체계가 수의 원리에 부합하는 유일무이하고 절대적인 기수법 체계라는 믿음이 전혀 근거가 없다는 사실을 여실히 보여주었던 것이다.

정녕 10진법은, 인간의 손가락이 10개라는 생태적 특성에서 기인한, 철저한 우연의 산물(물론 우리 인간의 입장에서 보자면 이 역시 필연의 산물이지만)이란 말인가!

1974년 미지의 외계 문명을 향해 발송된 지구인들의 메시지인 아레시보 메시지는 2진수로 작성되었다. 숫자가 우주 공통의 언어임에는 틀림없지만, 기수법 체계는 다를 수 있을 거라는 판단에 따른 것이다. 정말 외계인들의 손가락이 6개이거나 14개라면, 6진법이나 14진법을 사용할까?

참고로 16진법은 16을 밑으로 하여 숫자를 표기하는 기수법을 말한다. 1진법에서는 모든 숫자를 그 수의 크기와 동일한 개수의 어떤 기호로 표시한다. 즉 10진법상 12라는 숫자를 1진법으로 표현하면, 동그라미 열두 개가 된다. 설령 동그라미 대신 ‘0’이나 ‘1’같은 숫자를 쓰더라도, 1진법 상에서는 ‘자릿수’라는 것이 아무런 의미가 없다. 가령 1진법 상의 수 111111을 놓고 보면, 첫째자리 1이나 끝자리 1이나 같은 1이다.

2진법 이상의 기수체계가 되면, 숫자의 위치가 중요해진다. 그래서 이러한 표기법을 ‘위치 기수법’이라고도 한다. 10진법 체계에는 0부터 9까지 총 10개의 기호가 존재하며, 단지 이 10개의 기호로 모든 자연수를 간단히 표현할 수 있다. 우리가 직관적으로 이해하고 있는 10진법은, 한 자리에 0부터 9까지 표기할 수 있으며 셈이 ‘열’에 이르면, 1의 자리를 비워주고, 대신 10의 자리를 마련하여 숫자를 표기 해 주는 것이다. 이것은 셈에서 열을 하나의 단위, 혹은 완결로 보는 것이다.

16진법은 16을 밑으로 한다. 이 말은 한 자리에 0부터 15까지 열여섯 개의 숫자 표시가 가능하다는 얘기다. 셈이 16에 이르면, 10진법에서와 마찬가지로 자릿수 하나를 늘린다. 단 이때 새로 생긴 자리는 ‘10을 위한 자리’가 아니라 ‘16을 위한 자리’다. 따라서 16진법 상에서 ‘10’은, 10진법 상에서 ‘16’을 의미한다.

16진법으로 수를 표기하기 위해서는, 10진법보다 많은 기호가 필요하다. 열다섯까지는 한 자리에 표기할 수 있어야 하기 때문이다. 그래서 오늘날 16진수를 표기할 때에는, 0부터 9외에 알파벳 A부터 F를 함께 사용한다.

10진법의 수 : 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

16진법의 수 : 0 1 2 3 4 5 6 7 8 9 A B C D E F

사실 수의 표기는 ‘약속’에 불과하니까, 어떤 기호를 쓰든 무방하다. 이 경우에는 10진법상의 수 1부터 9를 빌려와 표기하는 것이 오히려 이해를 방해할 수 있다. ‘십’이니 ‘십일’이니 혹은 ‘이십 사’니 하는 자연어 표현도 역시 16진수를 직관적으로 받아들이는 데에 장애 요인이 된다. 16진수에 완전히 적응하려면 ‘십육’ 혹은 ‘열여섯’ 대신 다른 명칭이 필요할 것이다.

16진수를 10진수로 바꾸는 것은 비교적 간단하다. C236이라는 16진수를 10진수로 바꾸려면? 오른쪽에서 왼쪽으로 낮은 자리부터 높은 자리의 수를 표기한다는 약속은 동일하다. 6은 10진법에서와 마찬가지로 ‘1의 자리’의 숫자다. 3은 ‘16의 자리’에 있다. 2는 16의 제곱, C는 16의 세제곱 자리에 표기되어 있다.

C236을 10진법의 수로 변환하기 위해서는 다음의 과정이 필요하다

C x 16^3 + 2 x 16^2 + 3 x 16^1 + 6 x 16^0

여기서 C는 16진법 체계에서만 존재하는 기호이다. 10진법 수로 변환하는 과정에 있으니까, C를 10진법 상의 수인 ‘12’로 대체하자.

C x 16^3 = 12 x 16^3 = 49152

나머지 숫자를 더해주면 16진수 C236은 10진수 49718이 된다.

숫자를 10진법으로 표기하든 16진법으로 표기하든, 수의 속성은 전혀 변하지 않는다. ‘소수’나 ‘완전수’ 같이 특정한 수의 특수한 성격도 그대로 유지되고, ‘우애수’ 같은 수 사이의 관계도 변하지 않는다. 10진법과 16진법은 단지 같은 수를 표기하는 방식이 다른 것이기 때문이다.

그러나 숫자의 크기를 직관적으로 이해하는 것은 매우 어렵다. 이것은 그저 적응의 문제일까? 만일 우리의 손가락이 16개였다면, 16진법을 오늘날 10진법 사용하듯 자연스럽게 사용할 수 있었을까?

인류 역사상 10진법이 실제로 사용된 유일한 기수법이었던 것은 결코 아니다. 메소포타미아에 정착한 수메르인들은 60진법 체계를 고안 해 냈다. 10세기까지 존속한 것으로 보이는 마야 문명은 20진법을 사용했는데, 매우 정밀한 역법을 개발 해 사용하고 있었다.

오늘날 일상생활에서도 10진법 외의 기수법이 쓰이고 있다. 바로 60초를 1분, 60분을 1시간으로 규정하고 있는 시간이다. 물론 완전히 10진법 상의 숫자들만을 가지고 표기하기 때문에 다소 헷갈리는 면은 있다. 사람들은 종종 120분을 1시간 20분으로 착각하기도 한다.

시간 계산에서 60진법을 처음 사용한 것은 바빌로니아 문명으로 알려져 있다. 그런데 중국 문명에서도 60간지를 이용하여 날짜 계산을 한 것은 보면, 이 60진법 체계의 발달에도 어떤 필연성 같은 것이 있는 게 아닌가 싶다.

아무튼 시간의 표기가 60진법인 까닭에 초등학생 때 따로 시간 계산법을 배워야 할 정도로 시간 계산은 까다로워졌다. 언젠가 일본에서 연예인들이 나와 퀴즈를 푸는 프로그램을 본 적이 있는데, 몇몇 바보 연예인들은 분을 시간으로 환산하는 간단한 문제를 풀지 못 했다. 프랑스 혁명 정부는 이러한 병폐를 고치고 또 사람들을 과거의 습관으로부터 단절시키기 위해 100초를 1분으로, 100분을 1시간으로 하는 새로운 시간 체계를 도입했으나, 이때에는 사람들의 습관이 승리했다.

또 하나 우리의 일상생활과 밀접한 관련을 맺고 있는 것이 바로 ‘2진법’이다. 사실 2진법은 도처에 널려있다. 우리가 흔히 ‘아날로그’에 대비되는 개념으로 사용하는 ‘디지털’은 본래 어떤 모호한 중간 값을 표기하지 않고 데이터를 단위 별로 끊어서 ‘숫자’로 표현하는 것을 일컫는데, 이 디지털의 기저를 이루는 것이 ‘2진법’이다. 2진법이 유용한 이유는 신호의 ‘있음’과 ‘없음’만으로 모든 수의 표현이 가능해, 이 단순한 수단만으로도 무한한 데이터를 생성할 수 있기 때문이다. 오늘날 우리의 기계 문명을 떠받치고 있는 것이 이 2진수라고 해도 틀린 말이 아니다.

재미있는 것은 2진법과 16진법의 관계이다. 내가 울트라 에디터로 세이브 데이터를 열어 젖혔을 때 마주한 것은 2진수가 아닌 16진수였다. 무슨 까닭이었을까? 2진수와 16진수 사이의 관계를 알면 의문은 쉽게 풀린다.

자연수 중에서 네 자리로 표기 가능한 2진수를 모두 생각해 보자. 몇 개나 있을까? 0001, 0010, 0011 ... 1110, 1111 등 모두 15개다. 이는 10진법 상의 자연수 1에서 15까지에 해당한다. 10진수 1에서 15라니, 왠지 친숙하지 않은가? 그렇다, 이는 16진수 1부터 F까지로 간단히 나타낼 수 있다. 즉 무려 네 자리로 이루어진 복잡한 2진수를, 16진수로 바꾸어 표현하면 달랑 한 자리 수가 되어버리는 것이다.

0001 = 1

0101 = 5

1000 = 8

1110 = E

1111 = F

2진수가 신호의 ‘있음’과 ‘없음’으로 디지털 신호의 기초가 되고 있다는 것은 이미 얘기 했다. 컴퓨터에서 이렇게 ‘있음’ ‘없음’의 단 두 가지를 표현할 수 있는 최소의 단위를 ‘비트bit’라고 한다. 그리고 ‘있음’과 ‘없음’은 간단히 1과 0으로 쓴다.

1과 0 단 두 개의 신호를 표현할 수 있는 1비트를 8개 모은 것이 1바이트byte이다. 따라서 1바이트는 무려 8자리로 된 2진수로 표현된다. 8자리로 된 2진수는 대체 몇 개나 있을까? 이것을 일일이 화면상에다 표시하는 것도 일이다.

하지만 위에서 본 것처럼, 이런 복잡한 2진수를 16진수로 바꾸어 매우 간결하게 표기할 수 있다. 네 자리로 된 2진수를 모두 표기하는 데, 16진수는 겨우 한 자리를 필요로 했다. 이제 2진수의 자리가 네 자리에서 여덟 자리로 늘어났다. 모든 숫자를 표기하기 위해서는 몇 자리의 16진수가 필요할까? 답은 단 두 자리이다.

여덟 자리로 된 2진수를 네 자리 씩 둘로 끊어서 보면 이해하기 쉽다. 가령 8자리로 된 2진수 중 가장 큰 수인 11111111은 1111,1111로 끊어서 표기할 수 있다. 이를 16진수로 바꾸면 F,F가 된다. 이렇게 1바이트는 16진수 단 두 자리로 표현할 수 있다. 왜 그 옛날 게임 캐릭터들의 한계 능력치가 255였는가 하는 의문이 풀린다. 10진수 255는 16진수 FF에 해당한다. 캐릭터의 능력치에 할당된 공간이 1바이트였던 것이다.

이처럼 우리 생활 속에는 이미 여러 가지 기수법들이 깊숙이 들어와 있다. 우리가 종종 너무나도 당연하게 여기고 의심조차 품지 않는 세상의 겉모습을 한 꺼풀만 벗겨보면, 어떤 절대성에 대한 우리의 신념을 여지없이 부수어버리는 낯선 진실들이 가득하다.

정녕 10진법 체계는 수 개념의 내적 속성과는 아무 관련도 없고, 결코 절대적이거나 유일무이한 수 체계도 아닌 것이다. 눈앞에서 10진수가 해체되었다가 16진수로 재구성되는 순간, 나는 숫자 앞에서 완전한 무지자가 되었으며, 머릿속에서는 숫자의 모든 개념이 백지화된 것과 같은 공황 상태가 일어났다. 이는 실로 생활에 필요한 사칙연산만 할 줄 알면 수를 정복한 것처럼 여기던 그 오만함에 경종을 울리는 일대 사건이었다.

우주적 차원에서 수의 질서는 정말 절대적일지도 모른다. 그러나 나는 얼마나 낮은 차원에서 그 절대성을 구하고자 했던가? 단지 우주의 질서 속에 존재하는 수를 우리 인간이 이해하기 위해서 고안한 표기법, 고작 그 표기법의 장난질에도 내가 믿었던 질서는 붕괴되고 혼돈에 휩싸이고 말았으니!

다른 기수법을 통해 바라본 수의 세계는 전혀 다른 모습을 하고 있다. 수의 본질은 전혀 변화하지 않지만, 우리 인식 구조에는 완전히 낯선 세계가 표상한다. 이것은 비단 수에만 국한된 얘기는 아니다. 전혀 다른 기준에 의해 정렬된 세계에서는 우리의 상식이 더 이상 통용되지 않을 수 있다. 익숙한 세계는 모습을 바꾸고, 절대적이라 신봉했던 질서는 한 순간에 붕괴되어 우리를 가치의 혼돈 속으로 내몬다.

10진법에 익숙한 사람들에게 16진법의 수 체계는 잘 이해되지 않고, 낯설며, 심지어 공포를 유발하기도 한다. 공포는 혐오를 낳고, 혐오는 언제나 인간들의 분노를 이끌어 낸다. 아마 지구상에 열여섯 개의 손가락을 가진 소수의 인종이 존재했다면, 그들은 손가락이 열 개인 다수의 인간들로부터 10진법의 사용을 강요받았을 것이다. 사실 이런 말도 안 되는 상황은 오늘날에도 살짝 다른 모습으로 수없이 자행되고 있지만.

미약한 인간은 우주적 차원에 서서 모든 자연의 질서를 파악할 수 없다. 인간들이 사는 이 세상만 해도 한 인간이 파악할 수 있는 지평의 범위를 훨씬 초과하고 있는 것이다. 그렇기 때문에 우리는 국소의 영역에서 우리에게 익숙한 기준들을 가지고 세상을 바라보거나 이해할 수밖에는 없다. 그러나 이 기준이 절대적이며 유일무이한 가치라는 판단을 섣불리 내려서는 안 된다. 이런 태도는 종종 10진법에 타 기수법에 대한 도덕적 우월성을 부여하려는 것과 같은 어리석은 행동을 초래한다. 그리고 자신이 신봉하는 그 절대성이 붕괴되었을 때, 인간은 스스로 제어할 수 없는 혼란에 빠진다.

손가락이 열 개인 우리는 10진법만 잘 알고 활용하면 된다. 그러나 2진법이나 16진법, 그 외에 5진법이나 8진법, 12진법, 60진법이 존재하고 있다는 사실 정도는 알아두는 것이 좋지 않을까. 세상을 바라보는 창이 다양할수록 좋기 때문이기도 하거니와, 그저 재미를 위해서도 말이다.

2009/07/26 08:13 2009/07/26 08:13