유틸리티

2진수, 10진수, 16진수 변환 방법과 진법 쉽게 이해하기

프로그래밍을 배우다 보면 10진수와 2진수, 16진수를 오가야 하는 순간이 온다. CSS 색상 코드 #FF5733에서 FF가 10진수로 255라는 걸 알면 코드 읽기가 훨씬 수월해진다. 진법 자체는 단순한 규칙인데, 변환하는 과정이 번거로울 뿐이다.

진법이란

진법은 숫자를 표현하는 체계다. 우리가 일상에서 쓰는 건 10진법이고, 컴퓨터는 내부적으로 2진법을 쓴다. 자릿수가 올라가는 기준이 몇이냐에 따라 진법이 달라진다.

진법사용 숫자주요 용도
2진수(Binary)0, 1컴퓨터 내부 연산, 비트 연산
8진수(Octal)0~7유닉스 파일 권한 (chmod 755 등)
10진수(Decimal)0~9일상 숫자 표현
16진수(Hex)0~9, A~F색상 코드, 메모리 주소, MAC 주소

변환 예시로 보는 차이

같은 숫자가 진법에 따라 어떻게 표현되는지 비교하면 감이 온다.

10진수2진수8진수16진수
10101012A
42101010522A
100110010014464
25511111111377FF
참고 16진수에서 A=10, B=11, C=12, D=13, E=14, F=15다. 10 이상의 숫자를 한 자릿수로 표현하기 위해 알파벳을 빌려 쓰는 것이다.

실무에서 진법이 쓰이는 곳

웹 개발: 색상 코드

#FF5733은 빨강 FF(255), 초록 57(87), 파랑 33(51)을 16진수로 표기한 것이다. 색상값을 미세하게 조정할 때 16진수 구조를 알면 편하다.

네트워크: IP와 MAC 주소

IPv4 주소 192.168.0.1은 10진수지만, MAC 주소 00:1A:2B:3C:4D:5E는 16진수다. 네트워크 장비 설정에서 자주 마주친다.

시스템: 파일 권한

리눅스에서 chmod 755의 7, 5, 5는 8진수다. 2진수로 풀면 111(읽기+쓰기+실행), 101(읽기+실행), 101(읽기+실행)이 된다.

빠르게 변환하는 방법

손으로 계산하면 나누기를 반복해야 해서 실수가 나기 쉽다. 진법 변환기에 숫자를 넣으면 2진수, 8진수, 10진수, 16진수가 동시에 나온다. 2~36진법까지 지원하고, ASCII 문자 코드 변환도 된다.

진법 자체를 외울 필요는 없다. 원리만 알아두고, 변환이 필요할 때 도구를 쓰면 된다. 개발자든 학생이든 마찬가지다.