"왜 컴퓨터는 두 진법을 같이 써?"
코딩 시작하면서 자주 듣는 질문. 컴퓨터는 0과 1만 이해한다고 들었는데 왜 16진법도 자주 보일까. 한 번 풀어 본다.
2진법의 자리
2진법은 0과 1만 사용. 디지털 회로의 ON/OFF에 직결되는 표기. 컴퓨터 내부 모든 연산은 결국 2진법.
16진법의 자리
16진법은 0~9, A, B, C, D, E, F 사용. 한 자리에 0~15 표현 가능. 사람이 읽기에 2진법보다 짧고, 컴퓨터 단위로 변환이 쉬워 자주 사용.
같은 숫자, 다른 표기
- 10진법 255 = 2진법 11111111 = 16진법 FF
- 10진법 256 = 2진법 100000000 = 16진법 100
- 10진법 4096 = 2진법 1000000000000 = 16진법 1000
2진법과 16진법의 관계
16진법 한 자리 = 2진법 네 자리. 16=2의 4제곱. 그래서 두 진법 사이 변환이 매우 쉽다. 16진법 FF는 2진법 1111 1111. 사람은 16진법 FF로, 컴퓨터는 2진법 1111 1111로 처리.
왜 사람은 16진법을 쓰지?
2진법은 너무 길다. 32비트 주소를 2진법으로 적으면 0과 1이 32개. 같은 숫자를 16진법으로 적으면 8자리. 메모리 주소·색상 코드·해시값 등 사람이 읽어야 하는 자료에 16진법이 자리 잡았다. 진법 변환기로 두 진법을 동시에 보면 변환 관계가 한눈에 잡힌다.
10진법과 8진법은?
10진법은 사람의 일상 표기. 컴퓨터 내부에서는 직접 처리하지 않지만 입출력에 사용. 8진법은 리눅스 파일 권한·옛 시스템에 일부 남아 있다.
네 진법 한 줄 정리
- 2진법 → 컴퓨터 내부
- 8진법 → 파일 권한·일부 시스템
- 10진법 → 사람의 일상
- 16진법 → 사람과 컴퓨터의 다리
진수 변환기로 한 진법 입력하면 네 진법이 한 화면에. 변환 관계가 손에 잡힌다.
마무리
두 진법은 서로 다른 자리에서 같이 일한다. 한 번 차이를 익히면 코딩 자료 해석이 부드러워진다.