유틸리티

10진수 2진수 16진수 변환, 진법 바꾸는 원리와 방법

컴퓨터는 0과 1밖에 모른다. 우리가 입력하는 숫자 255는 컴퓨터 내부에서 11111111로 처리되고, 메모리 주소는 0xFF 같은 16진수로 표기된다. 진법 변환은 이 숫자들 사이를 오가는 기술이다.

진법이란

진법은 숫자를 세는 단위 체계다. 우리가 일상에서 쓰는 10진법은 0~9까지 10개의 숫자로 수를 표현하고, 2진법은 0과 1 두 개만 쓴다.

진법사용 숫자주요 쓰임
2진수0, 1CPU 내부 연산, 비트 플래그
8진수0~7리눅스 파일 권한 (chmod 755)
10진수0~9일상 숫자, 일반 계산
16진수0~9, A~F메모리 주소, 색상 코드, MAC 주소

10진수를 2진수로 바꾸는 원리

10진수를 2로 계속 나누면서 나머지를 아래에서 위로 읽으면 된다.

예시 10진수 13을 2진수로 변환
13 / 2 = 6 ... 나머지 1
6 / 2 = 3 ... 나머지 0
3 / 2 = 1 ... 나머지 1
1 / 2 = 0 ... 나머지 1
아래에서 위로 읽으면 → 1101

16진수와 2진수의 관계

16진수 한 자리는 2진수 4자리와 정확히 대응된다. 그래서 긴 2진수를 4자리씩 끊어서 16진수로 변환하면 간결해진다.

  • 0000 = 0, 0001 = 1, ... 1001 = 9
  • 1010 = A, 1011 = B, ... 1111 = F

예를 들어 2진수 111111111111 + 1111 = FF이고, 10진수로는 255다. CSS에서 흰색을 #FFFFFF로 쓰는 이유가 바로 이것이다.

직접 계산이 번거로울 때

시험 공부 중에 원리를 이해하는 것과 실무에서 빠르게 결과를 얻는 것은 다른 문제다. 진법 변환기에 숫자 하나를 입력하면 2진수, 8진수, 10진수, 16진수가 동시에 표시된다. 36진수까지 확장 변환도 되고, 입력한 문자의 ASCII 코드도 바로 확인할 수 있다.

진법 변환 원리를 알면 디버깅이나 네트워크 설정에서 16진수가 나와도 당황하지 않는다. 원리는 한 번 익혀두고, 실무에서는 도구로 검증하는 게 실수를 줄이는 방법이다.