brunch

You can make anything
by writing

C.S.Lewis

by 강단 Jul 07. 2021

100이 몇이야

<4> 세상을 닮은 기술, 기술을 닮은 세상

사내 라디오 방송에서 한 사연이 흘러나온다.


"안녕하세요,  ○○ 부서에서 근무하는 20살 린이입니다. 아, 물론 16진수로요"


이 재미없고 해괴해 보이는 유머에 여기저기서 현웃을 뿜었고 (고백하건대 걔 중엔 분명 나도 포함됐다) 부서 메신저 창엔 '참신한 표현', '나도 20대가 될 수 있는 방법을 찾았다'는 등 폭발적인 반응들이 이어졌다. 이들에게 논리의 반대말은 물리요 BEEF CAFE는 3,203,386,110 일 뿐. 커피를 넣으면 코드가 나온다고 알려진 그들은 바로 펌웨어 개발자다.


 흔히 개발자라 불리는 직업도 뜯어보면 그 안에 다양한 범주가 존재한다. 그중 펌웨어 개발자는 스마트폰, 스피커, 드론, 내비게이션, SSD 등 특수 목적을 지닌 전자제품에 탑재되는 프로그램을 개발하는 사람들이다. 운영체제 위에서 동작하는 범용 프로그램과 달리, 펌웨어는 CPU, DRAM과 같은 하드웨어를 직접 제어해야 한다. 소프트웨어가 인테리어 시공이라면 펌웨어는 가스 배관과 전기 선, 보일러까지 직접 신경 써야 한달까. 그들이 기계어인 2진수에 익숙한 이유다.


 10진수를 쓰면 이해하기 편할 텐데, 컴퓨터는 왜 2 진수를 쓰는 걸까? 사실 최초 컴퓨터인 에니악은 10진수 체계를 사용했다. 하지만 얼마 지나지 않아 과학자들은 10개의 서로 다른 신호를 구분하는 것보다 0, 1을 전기 신호에 대응시켜 사용하면 컴퓨터엔 훨씬 효율적이라는 결론에 도달했다. 전기신호가 있는 경우를 1, 없는 경우를 0에 대응시켜 사용하는 것이 1~2V는 1, 2~3V는 2,... 9~10V는 9와 같이 사용하는 것보다 더 빠르고 오류도 적기 때문이다. 이후 모든 컴퓨터에 2진법이 도입되었고 컴퓨터에서 정보를 저장하고 연산을 수행하기 위한 최소 단위는 이진 숫자 (binary digit)를 뜻하는 bit가 되었다.


 그럼 16진수는 어디서 굴러온 친구일까? 2진수는 사람이 사용하기엔 불편한 부분이 많다. 예를 들어 3,203,386,110 란 10진수 숫자를 2진수로 표현하려면 32자리 수가 된다. 하지만 2진수 4개를 이어 붙여 16진수로 표기하면 단 8 글자면 충분하다.


1011 1110 1110 1111 1100 1010 1111 1110  (2진수)

   B       E        E       F       C        A        F        E    (16진수)


그러니 펌웨어 엔지니어에게 100이 몇이지? 라 물으면 그들은 되물을 것이다.

2진수야 16진수야


[네이버 지식백과] 16진수 (시사상식사전, pmg 지식엔진연구소)

0에서 9까지 10개의 숫자에 A에서 F까지 6개의 문자를 추가한 것을 한 단위로 사용해 수를 표현하는 방식이다. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9는 십진수와 같이 사용하고, 10, 11, 12, 13, 14, 15는 영어 알파벳 대문자를 빌려서 A, B, C, D, E, F로 사용한다. 예컨대 15를 16진수로 나타내면 F가 되고 26은 1A가 된다. 컴퓨터 프로그래밍에서는 보통 2진수를 이용하는데 자릿수가 너무 커질 경우 2진수를 4자리씩 묶어 16진수로 표기하기도 한다. 

작가의 이전글 속사정
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari