유틸리티

진법 변환기 사용법, 2진수 8진수 10진수 16진수 쉽게 변환하기

컴퓨터는 0과 1밖에 모른다. 그런데 프로그래밍할 때는 16진수가 자주 나오고, IP 주소는 10진수고, 리눅스 파일 권한은 8진수로 설정한다. 결국 같은 숫자를 다른 방식으로 표현하는 것뿐인데, 수동 변환은 꽤 번거롭다.

진법이 뭔가

진법(진수)은 숫자를 세는 방식이다. 일상에서는 10진법을 쓴다. 0부터 9까지 10개의 숫자를 사용하고, 자릿수가 올라가면 10배씩 커진다. 2진법은 0과 1 두 개만 쓰고, 16진법은 0~9에 A~F를 추가해서 16개의 기호를 쓴다.

진법별 사용처

진법사용하는 곳예시
2진수컴퓨터 내부 처리, 비트 연산1010 = 10진수 10
8진수리눅스 파일 권한chmod 755
10진수일상 숫자, IP 주소192.168.0.1
16진수색상 코드, 메모리 주소#FF5733, 0x1A

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

10진수를 2로 계속 나누면서 나머지를 거꾸로 읽으면 2진수가 된다.

13 ÷ 2 = 6 ... 나머지 1
6 ÷ 2 = 3 ... 나머지 0
3 ÷ 2 = 1 ... 나머지 1
1 ÷ 2 = 0 ... 나머지 1
→ 거꾸로 읽으면: 1101

직접 해보면 간단한 숫자도 몇 단계가 필요하다. 큰 숫자나 16진수가 섞이면 실수 확률이 높아진다.

TIP 프로그래밍에서 16진수는 앞에 0x를 붙여 표기한다. 0xFF는 10진수 255이자 2진수 11111111이며, 8비트(1바이트)로 표현할 수 있는 최댓값이다.

진법 변환, 자동으로 하는 법

시험이 아니라면 손으로 나눗셈을 반복할 필요가 없다. 웹에서 바로 쓸 수 있는 진법 변환기가 있다. 한 칸에 숫자를 입력하면 나머지 세 칸에 2진, 8진, 16진 결과가 자동으로 채워진다. 2~36진법 사이의 사용자 정의 변환과 ASCII 문자 코드 변환까지 지원한다.

진법 변환은 원리를 한 번 이해하면 끝이고, 실무에서는 도구로 빠르게 처리하는 게 현실적이다.