유틸리티

10진수 2진수 변환, 진법 계산 쉽게 하는 법

프로그래밍을 배우다 보면 0xFF가 255라는 걸 알아야 하고, 네트워크 수업에서는 서브넷 마스크를 2진수로 풀어야 한다. 진법 변환은 원리만 알면 간단한데, 큰 숫자를 손으로 계산하려면 시간이 오래 걸린다.

진법이 뭔지, 왜 여러 가지가 있는지

진법은 숫자를 표현하는 체계다. 일상에서 쓰는 10진법은 0~9까지 10개의 숫자를 사용하고, 컴퓨터는 0과 1만 쓰는 2진법으로 데이터를 처리한다.

진법사용 숫자쓰이는 곳
2진수0, 1컴퓨터 내부 연산, 네트워크 마스크
8진수0~7유닉스 파일 권한 (chmod 755)
10진수0~9일상생활 전부
16진수0~9, A~F색상 코드, 메모리 주소, MAC 주소

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

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

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

16진수 변환도 같은 원리다. 2 대신 16으로 나누면 된다. 다만 나머지가 10 이상이면 A(10), B(11), C(12), D(13), E(14), F(15)로 표기한다.

자주 쓰이는 변환 값 모아보기

10진수2진수16진수활용
25511111111FF색상 코드 최대값, 서브넷 마스크
1281000000080IP 주소 클래스 구분
127011111117Fsigned byte 최대값
655351111111111111111FFFF16비트 최대값

큰 숫자나 특수 진법이 필요하면

손으로 계산하면 자릿수가 늘어날수록 실수가 잦아진다. 진법 변환기에 숫자를 넣으면 2진수, 8진수, 10진수, 16진수 결과가 동시에 나온다. 2~36진법 사이 임의 변환도 지원하고, ASCII 문자의 코드값까지 확인할 수 있어서 과제나 개발 중에 바로 참고하기 좋다.

진법 변환의 원리를 이해하는 건 중요하지만, 실전에서는 도구를 쓰는 게 정확하고 빠르다.