컴퓨터는 모든 것을 0과 1로 처리한다. 우리가 보는 숫자 255는 컴퓨터 내부에서 11111111이고, 색상 코드에서는 FF다. 같은 값인데 진법에 따라 표기가 완전히 달라진다.
진법이란
진법은 숫자를 표현하는 체계다. 일상에서 쓰는 10진법은 0~9 열 개의 숫자를 사용하고, 2진법은 0과 1만 쓴다. 컴퓨터 분야에서는 2진수, 8진수, 16진수가 자주 등장한다.
| 10진수 | 2진수 | 8진수 | 16진수 |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 10 | 1010 | 12 | A |
| 100 | 1100100 | 144 | 64 |
| 255 | 11111111 | 377 | FF |
| 1000 | 1111101000 | 1750 | 3E8 |
어디에서 어떤 진법이 쓰일까
2진수 (Binary)
컴퓨터의 기본 언어다. CPU, 메모리, 네트워크 전송 등 하드웨어 수준에서는 모든 데이터가 2진수로 처리된다. 프로그래밍에서 비트 연산, 권한 설정(chmod), 서브넷 마스크를 다룰 때 필요하다.
8진수 (Octal)
리눅스/유닉스 파일 권한에서 자주 보인다. chmod 755에서 755가 8진수다. 2진수를 3자리씩 묶으면 8진수 한 자리가 되기 때문에 변환이 직관적이다.
16진수 (Hexadecimal)
웹 색상 코드(#FF5733), 메모리 주소(0x7FFF), MAC 주소(00:1A:2B:3C:4D:5E) 등에 쓰인다. 2진수를 4자리씩 묶으면 16진수 한 자리가 되어, 긴 2진수를 짧게 표현할 때 유용하다.
진법 변환 직접 해보기
손으로 나눗셈을 반복해서 변환하는 건 시간이 걸리고 실수하기 쉽다. 온라인 진법 변환기에서 한 칸에 숫자를 입력하면 나머지 세 칸이 실시간으로 채워진다.
- 변환하고 싶은 숫자의 진법 입력란을 찾는다 (2진수, 8진수, 10진수, 16진수)
- 해당 칸에 숫자를 입력하면 나머지 칸이 자동으로 변환된다
- 복사 버튼을 눌러 필요한 형식의 값을 가져온다
2~36진법까지 사용자 정의 진법도 지원하고, 문자를 입력하면 ASCII 코드로 변환하는 기능도 있다. 0부터 255까지의 변환표도 제공되니 참고용으로 쓸 수 있다.
참고 16진수에서 A=10, B=11, C=12, D=13, E=14, F=15다. 0~9 이후의 숫자를 알파벳으로 대체한 것이라 익숙해지면 어렵지 않다.
자주 묻는 질문
왜 컴퓨터는 10진수를 안 쓰나요?
컴퓨터는 전기 신호의 켜짐(1)과 꺼짐(0) 두 상태만 구분할 수 있다. 그래서 가장 기본적인 단위가 2진수(비트)가 된다. 10가지 상태를 구분하려면 하드웨어가 훨씬 복잡해진다.
음수는 어떻게 표현하나요?
컴퓨터에서 음수는 2의 보수(Two's Complement) 방식으로 표현한다. 예를 들어 8비트에서 -1은 11111111(2진수)이 된다. 일반 진법 변환기에서는 양수만 다루는 경우가 많다.
소수점이 있는 숫자도 변환되나요?
대부분의 온라인 변환기는 정수만 지원한다. 소수점이 포함된 수의 진법 변환은 정수 부분과 소수 부분을 따로 계산해야 한다.
진법 변환은 공식을 외우기보다 도구에 맡기고 결과만 확인하는 게 실무에서 빠르다. 숫자 하나 입력하면 네 가지 진법이 동시에 나오니 굳이 손으로 계산할 필요가 없다.