16진수, 2진수, 8진수의 차이는? 프로그래머가 매일 쓰는 진법 완전 해설

Photoshop을 열면 #3A7BD5라는 색상 코드가 보이고, 터미널에 chmod 644를 입력하고, 소스 코드에서 0xFF0b1010을 마주칩니다. 이것들은 모두 '진법(기수법)'이라는 같은 개념에 기반합니다. 진법을 이해하는 것은 프로그래밍의 기초입니다.

왜 여러 진법이 있을까?

인간은 손가락이 10개라서 자연스럽게 10진수(Decimal)를 씁니다. 컴퓨터는 트랜지스터의 ON/OFF만 있어서 2진수(Binary)를 씁니다. 8진수와 16진수는 사람이 2진수를 더 쉽게 읽기 위해 만들어진 표기법입니다.

빠른 변환:진법 변환 도구로 10진수·2진수·8진수·16진수를 즉시 상호 변환할 수 있습니다.

2진수: 컴퓨터의 언어

2진수는 0과 1만 사용합니다. 1자리를 비트(bit), 8비트를 바이트(byte)라고 합니다. 비트 연산(AND·OR·XOR), 네트워크 서브넷 마스크, 권한 플래그 등에 활용됩니다.

8진수: Linux 파일 권한의 비밀

chmod 755의 의미: 소유자 rwx(7=4+2+1), 그룹 r-x(5), 기타 r-x(5). 각 숫자는 읽기(4)+쓰기(2)+실행(1)의 합입니다.

16진수: 가장 자주 등장하는 진법

16진수는 0~9와 A~F를 사용합니다. 1문자가 4비트, 2문자가 1바이트를 나타냅니다. 주요 용도: CSS 색상 코드(#3A7BD5), 메모리 주소, 해시값(MD5·SHA256), URL 퍼센트 인코딩(%20=공백).

색상 코드 변환:색상 변환 도구로 HEX·RGB·HSL을 상호 변환할 수 있습니다.
URL 인코딩:URL 인코더로 한글 URL의 퍼센트 인코딩을 자동 처리할 수 있습니다.

정리

  • 2진수: 하드웨어 기반, 비트 연산·마스크·플래그
  • 8진수: Unix 파일 권한 (chmod)
  • 16진수: 색상 코드·메모리·해시·URL 인코딩
  • 16진수 ↔ 2진수 변환이 가장 쉬움: 16진수 1자리 = 4비트, 암산 불필요