프로그래밍을 배우다 보면 10진수 말고 다른 진법을 만나게 된다. 색상 코드에서 보이는 FF는 16진수이고, 컴퓨터가 내부적으로 쓰는 건 0과 1뿐인 2진수다. 시험이나 과제에서 진법 변환 문제가 나오면, 손으로 나눗셈을 반복하다 실수하는 경우가 많다.
진법이란
우리가 일상에서 쓰는 숫자는 0부터 9까지 10개의 기호를 쓰는 10진법이다. 컴퓨터는 전기 신호의 켜짐/꺼짐만 인식하기 때문에 0과 1, 두 가지만 쓰는 2진법으로 동작한다. 프로그래밍에서는 2진수를 짧게 표현하기 위해 8진수(0~7)와 16진수(0~F)도 자주 쓴다.
| 10진수 | 2진수 | 8진수 | 16진수 |
|---|---|---|---|
| 10 | 1010 | 12 | A |
| 100 | 1100100 | 144 | 64 |
| 255 | 11111111 | 377 | FF |
| 1024 | 10000000000 | 2000 | 400 |
10진수를 2진수로 바꾸는 원리
10진수를 2로 계속 나누면서 나머지를 역순으로 읽으면 2진수가 된다. 예를 들어 13을 2진수로 바꾸면:
- 13 ÷ 2 = 6 ... 나머지 1
- 6 ÷ 2 = 3 ... 나머지 0
- 3 ÷ 2 = 1 ... 나머지 1
- 1 ÷ 2 = 0 ... 나머지 1
나머지를 아래에서 위로 읽으면 1101이 된다. 16진수 변환도 같은 원리로 16으로 나누면 되지만, 자릿수가 큰 숫자는 손 계산이 번거롭다.
실전에서 빠르게 변환하려면
손으로 나눗셈을 반복하면 시간도 걸리고 실수가 생기기 쉽다. 온라인 진법 변환기에 숫자를 입력하면 2진수, 8진수, 10진수, 16진수가 동시에 나온다. 2~36진법까지 커스텀 진법도 지원하고, ASCII 문자 코드 변환도 가능해서 프로그래밍 과제나 개발 작업에 바로 쓸 수 있다.
참고 16진수에서 A=10, B=11, C=12, D=13, E=14, F=15다. CSS 색상 코드 #FFFFFF는 RGB 각 채널이 255(FF)라는 뜻이고, 흰색을 의미한다.
진법 변환 원리를 이해해두면 컴퓨터 구조 수업이나 코딩 면접에서 유용하고, 실무에서는 변환기로 바로 확인하는 게 실수를 줄이는 방법이다.