cs

[CS] 십진수, 이진수, 팔진수, 16진수의 개념과 활용

연화 2025. 3. 31. 13:44


컴퓨터공학을 전공하거나 프로그래밍을 공부하다 보면 다양한 진법(進法, number system) 에 대해 배우게 됩니다. 그 중에서도 십진수(Decimal), 이진수(Binary), 팔진수(Octal), 16진수(Hexadecimal) 는 가장 기본이면서도 중요한 수 체계입니다.

이번 포스팅에서는 각 진법이 무엇인지, 왜 필요한지, 그리고 어떻게 활용되는지를 이해하기 쉽게 정리해보았습니다.





1. 십진수 (Decimal: 10진법)


우리가 일상생활에서 사용하는 익숙한 숫자 체계입니다.
0부터 9까지 총 10개의 숫자를 사용하며, 자릿수가 올라갈수록 10의 거듭제곱으로 계산됩니다.

135 = 1×10² + 3×10¹ + 5×10⁰


십진수를 사용하는 이유는?
역사적으로 인간의 손가락이 10개라서 자연스럽게 10진법이 사용되었다는 설이 있습니다.


 

2. 이진수 (Binary: 2진법)


컴퓨터가 내부적으로 사용하는 수 체계입니다.
0과 1, 단 두 개의 숫자만 사용하며, 이진법이 바로 디지털 회로와 밀접한 관련이 있습니다.

(1011)_2 = 1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 11 (십진수)



왜 컴퓨터는 이진수를 사용할까요?
트랜지스터와 같은 전자 회로는 전류가 흐르는 상태(1)와 흐르지 않는 상태(0)를 표현하기 때문에, 이진수는 하드웨어적으로 가장 효율적인 방식입니다.




 

3. 팔진수 (Octal: 8진법)


0부터 7까지 8개의 숫자를 사용하는 수 체계입니다.
예전에는 메모리 용량이나 파일 권한 등을 표현할 때 자주 사용되었습니다.


(17)_8 = 1×8¹ + 7×8⁰ = 15 (십진수)



팔진수가 사용되는 이유는?
이진수를 3자리씩 묶어서 표현하면 팔진수로 쉽게 변환할 수 있습니다.

(101111)_2 → (101)(111) → (5)(7) → (57)_8

 


 

4. 16진수 (Hexadecimal: 16진법)


0부터 9, 그리고 A부터 F까지 총 16개의 숫자를 사용하는 수 체계입니다.
A는 10, B는 11, ..., F는 15를 의미합니다.


(1F)_16 = 1×16¹ + 15×16⁰ = 31 (십진수)


16진수가 중요한 이유는?

이진수를 4자리씩 묶으면 간단하게 16진수로 표현할 수 있습니다.

메모리 주소, 디버깅, 색상 코드 등 다양한 실무에서 널리 사용됩니다.


#FF5733 → R: 255, G: 87, B: 51

 


 

5. 진법 간 변환 요약

십진수 (Decimal) 이진수 (Binary) 팔진수 (Octal) 십육진수 (Hex)
1 0001 1 1
2 0010 2 2
3 0011 3 3
4 0100 4 4
5 0101 5 5
6 0110 6 6
7 0111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A


이진수 → 팔진수: 3비트씩 끊어서 계산

이진수 → 16진수: 4비트씩 끊어서 계산





컴퓨터는 기본적으로 전기적인 장치입니다.
이진수는 이러한 전기 신호의 on/off 상태를 표현하기에 가장 적합하며, 팔진수와 16진수는 이진수를 사람이 더 쉽게 읽고 쓰기 위한 표현 방식입니다.

단순한 진법 변환 문제를 푸는 것에 그치지 않고,
언제, 왜 이러한 진법이 사용되는지를 이해하는 것이 전공자로서 더 중요한 부분입니다.