알쓸잇(it)잡/아는척-컴퓨터

디지털 숫자의 언어 - 2진법과 16진법의 대화

IT조아(it-zowa) 2025. 9. 24. 05:24
728x90
반응형

우리는 어려서부터 손가락을 접고 펴며 숫자를 배웠다. “하나, 둘, 셋…” 하고 세어보는 순간, 인간은 이미 10진법 세계 속에 들어와 있다. 숫자는 단순한 기호가 아니라, 우리의 몸에서 출발한 사고의 틀이다. 손가락이 열 개이기에 우리는 열을 단위로 셈을 하고, 그 결과 ‘1+1=2’라는 명제를 의심조차 하지 않는다.

 

그러나 컴퓨터의 세계로 들어가면 이야기가 달라진다. 인간에게 가장 자연스러운 10진법은, 기계에게는 낯선 언어다. 기계에게는 손가락이 없기 때문이다. 대신 기계는 단순한 스위치, 켜짐과 꺼짐이라는 두 상태만을 가질 뿐이다. 그래서 컴퓨터는 오직 0과 1, 이진법의 언어로 사고한다.

인간의 숫자 – 10진법

 

10진법은 인간에게 가장 익숙한 체계다. 손가락이 열 개라는 단순한 이유로, 인류는 오랜 세월 열을 기본 단위로 삼았다. 고대 이집트의 숫자, 로마 숫자, 오늘날의 아라비아 숫자까지, 모두 10진법에 기반을 두고 있다.

 

흥미롭게도 모든 문화가 같은 길을 택한 것은 아니다. 마야 문명은 20진법을 사용했고, 바빌로니아인은 60진법을 썼다. 지금도 우리가 시간을 60분으로 나누고, 각도를 360도로 측정하는 것은 바빌로니아인의 흔적이다. 그럼에도 불구하고 10진법이 인류 보편의 언어가 된 것은 손가락이 열개라는 조건 덕분이었다.

컴퓨터의 숫자 – 2진법

 

하지만 컴퓨터에는 손가락이 없다. 대신 단순한 스위치만 있다. 스위치가 켜지면 전류가 흐르고(1), 꺼지면 전류가 흐르지 않는다(0). 그래서 컴퓨터는 오직 0과 1, 두 가지 숫자만 이해하므로 2진법의 숫자를 사용한다.

 

여기서 흥미로운 일이 벌어진다. 인간의 세계에서 “1+1=2”는 당연하지만, 컴퓨터의 세계에서는 “1+1=10”이 된다. 처음 보면 의아할 수 있다. 그러나 생각해 보면, 인간도 9 다음에는 10으로 넘어가지 않는가? ‘9+1=10’에서 새로운 자릿수가 생기듯, 2진법에서도 ‘1+1=10’으로 넘어가는 것이다. 여기서 ‘10’은 인간이 아는 십(ten)이 아니라, 단순히 2라는 크기의 숫자를 의미한다. 2진법의 기호는 1과 0 뿐이기 때문에, 같은 계산이지만 표현 방식이 완전히 달라지는 것이다.

작은 규칙에서 거대한 계산으로

그리고 놀랍게도, 2진법에서 덧셈은 단 네 가지 규칙만 있으면 된다.

  • 0+0 = 0
  • 0+1 = 1
  • 1+0 = 1
  • 1+1 = 10

이 네 줄이 컴퓨터 계산의 전부이자 출발점이다. 인간이 외워야 할 구구단 81가지에 비하면 놀라울 만큼 단순하다. 하지만 이 단순함이 바로 디지털 세계의 힘이다.

“1+1밖에 모르는 기계가 어떻게 미적분을 풀고, 인공지능을 실행하는 걸까?”

 

비유하자면 이렇다. 레고 블록은 단순하다. 그러나 작은 블록들을 차곡차곡 쌓으면 집도, 성도, 도시도 만들 수 있다. 컴퓨터 역시 마찬가지다. 0과 1이라는 블록을 쌓아 덧셈, 뺄셈, 곱셈, 나눗셈을 만들고, 이를 다시 조합해 인터넷 암호화, 3D 그래픽, 인공지능 알고리즘까지 구현해 낸다.

 

단순함에서 비롯된 무한한 가능성, 이것이 디지털 문명의 토대다.

2진법의 불편함과 16진법의 탄생

그러나 2진법에는 한 가지 불편함이 있다. 숫자가 커질수록 0과 1이 끝없이 늘어난다는 것이다. 예를 들어, 10진수 255는 2진수로 ‘11111111’이 된다. 기계는 잘 처리하지만, 사람이 보기에는 길고 지루한 숫자의 행렬일 뿐이다. 

 

그래서 인간은 중간 언어를 만들었다. 그것이 바로 16진법이다. 2진수를 네 자리씩 묶어 0~9 뒤에 A~F를 붙여 총 16개의 기호를 사용한다. 2진법의 숫자를 네 자리씩 묶으면 바로 16진법의 숫자가 되므로, 훨씬 간결해져서 사람이 읽고 기억하기에 훨씬 편리하다. 덕분에 2진수 11111111은 16진수로 단순히 FF라고 쓸 수 있다. 

 

<16진법 숫자의 예>

10진수(Decimal) 2진수(Binary) 16진수(Hexadecimal)
10    1010 A
15    1111 F
38  100110 26
255 11111111 FF

우리의 일상에도 16진법은 숨어 있다. 웹 색상 코드가 대표적이다. #FF0000은 빨강, #00FF00은 초록, #0000FF은 파랑을 뜻한다. 컴퓨터 화면의 색 하나도 결국은 16진법 언어로 표현하여 프로그램에서 사용된다. 프로그래머들이 16진수를 즐겨 쓰는 이유도, 길고 복잡한 2진수를 훨씬 간결하게 다룰 수 있기 때문이다.

세 가지 언어의 공존

오늘날의 디지털 세계는 세 가지 언어 위에 세워져 있다. 인간은 10진법으로 사고하고, 기계는 2진법으로 계산하며, 그 사이를 16진법이 이어준다. 세상은 결국 손가락에서 출발한 인간의 언어, 스위치에서 출발한 기계의 언어, 그리고 그 둘을 번역하는 중간 언어가 서로 얽히며 돌아간다. 

 

중요한 것은, 컴퓨터가 언제나 0과 1만으로 움직인다는 사실이다. 우리가 보는 화려한 그래픽, 인공지능의 응답, 인터넷의 방대한 정보까지도, 그 뿌리는 단순한 두 기호, 0과 1의 이진법이다. 컴퓨터는 언제나 2진법만으로 동작한다. 16진법은 오직 인간을 위한 다리일 뿐이다.

반응형