유틸리티

2진수 10진수 16진수 변환 방법과 진법 개념 정리

프로그래밍을 배우다 보면 0xFF, 0b1010 같은 표기를 마주치게 된다. 10진수로 익숙한 숫자가 갑자기 알파벳과 섞여 나오면 당황스러운데, 원리를 알면 생각보다 단순하다.

진법이란

진법은 숫자를 표현하는 체계다. 우리가 일상에서 쓰는 건 10진법(0~9의 10개 숫자), 컴퓨터가 내부적으로 쓰는 건 2진법(0과 1만 사용)이다.

진법사용 숫자쓰이는 곳
2진수0, 1컴퓨터 내부 연산, 논리 회로
8진수0~7Unix 파일 권한 (chmod 755)
10진수0~9일상생활, 수학
16진수0~9, A~F색상 코드, 메모리 주소, MAC 주소

16진수에서 A=10, B=11, C=12, D=13, E=14, F=15다. 10 이상의 값을 한 자리로 표현하기 위해 알파벳을 빌려 쓴 것이다.

10진수를 다른 진법으로 바꾸는 원리

10진수 숫자를 원하는 진법의 기수로 계속 나누고, 나머지를 역순으로 읽으면 된다.

예시: 10진수 200을 2진수로

  1. 200 ÷ 2 = 100 나머지 0
  2. 100 ÷ 2 = 50 나머지 0
  3. 50 ÷ 2 = 25 나머지 0
  4. 25 ÷ 2 = 12 나머지 1
  5. 12 ÷ 2 = 6 나머지 0
  6. 6 ÷ 2 = 3 나머지 0
  7. 3 ÷ 2 = 1 나머지 1
  8. 1 ÷ 2 = 0 나머지 1

나머지를 아래에서 위로 읽으면: 11001000. 이게 200의 2진수 표현이다.

예시: 10진수 255를 16진수로

  1. 255 ÷ 16 = 15 나머지 15(F)
  2. 15 ÷ 16 = 0 나머지 15(F)

결과: FF. CSS에서 흰색이 #FFFFFF인 이유가 여기 있다. RGB 각 채널의 최대값 255가 16진수로 FF이기 때문이다.

자주 쓰이는 변환값 참고표

10진수2진수8진수16진수
0000
10101012A
16100002010
100110010014464
12711111111777F
25511111111377FF

실무에서 진법이 필요한 순간

웹 개발: 색상 코드
#FF5733 같은 HEX 색상 코드는 16진수다. RGB 값(255, 87, 51)과 같은 색이지만 표기 형식이 다를 뿐이다.
서버 관리: 파일 권한
Linux의 chmod 755에서 7, 5, 5는 8진수다. 각 자리가 읽기(4) + 쓰기(2) + 실행(1)의 조합이다. 7 = 4+2+1(모든 권한), 5 = 4+1(읽기+실행).
네트워크: MAC 주소
AA:BB:CC:DD:EE:FF 형태의 MAC 주소는 16진수 표기다. 48비트 주소를 읽기 쉽게 6쌍으로 나눈 것이다.
정보처리 시험
IT 자격증 시험에서 진법 변환 문제가 단골로 출제된다. 수기로 계산하는 연습도 필요하지만, 검산용으로 도구를 활용하면 실수를 잡아낼 수 있다.

수기로 나누기를 반복하다 보면 자릿수가 많아질수록 실수가 생긴다. 진법 변환기에 숫자를 입력하면 2진수, 8진수, 10진수, 16진수가 동시에 표시되고, 2~36진법까지 사용자 정의 변환도 가능하다. 시험 공부할 때 검산 용도로 쓰면 편하다.