진법 변환 (2진수·8진수·10진수·16진수)
숫자를 2진수·8진수·10진수·16진수 사이에서 서로 변환합니다. BigInt를 사용하여 자릿수가 큰 정수도 오차 없이 정확하게 변환합니다.
사용 팁
- 16진수를 입력할 때는 `0x` 같은 접두사를 붙이지 말고 숫자 부분만(예: `FF`) 입력하세요. 대문자와 소문자 모두 인식됩니다.
- 이 도구는 BigInt를 사용해 계산하므로, JavaScript의 Number 타입에서는 오차가 발생하는 큰 자릿수의 정수(2^53을 초과하는 값)도 정확하게 변환할 수 있습니다.
- 프로그래밍에서 자주 쓰이는 16진수 색상 코드(예: `#FF0000`)를 확인하거나, 비트 연산을 검증할 때 2진수 표기를 활용할 수 있습니다.
- 8진수는 유닉스 계열 운영체제의 파일 권한 표기(예: `755`)에서 자주 사용됩니다. 10진수·2진수와 비교해 보면 권한의 의미를 이해하기 쉬워집니다.
자주 묻는 질문
여담 ― 컴퓨터는 왜 2진수로 동작할까
컴퓨터가 2진수(0과 1)를 기본으로 하는 이유는, 전자 회로가 "전압이 높다/낮다", "스위치가 켜짐/꺼짐"이라는 두 가지 상태를 안정적으로 구별하기 쉽기 때문입니다. 10진수처럼 10단계의 전압 수준을 정확히 구별하는 회로를 만드는 것보다, 두 가지 상태만 다루는 회로가 노이즈에 강하고 부품 구성도 단순해진다는 실용적인 이유로, 현대의 거의 모든 컴퓨터가 2진수를 채택하고 있습니다.
16진수가 프로그래밍에서 요긴하게 쓰이는 이유는, 2진수 4자리(0000~1111)가 정확히 16진수 1자리(0~F)에 대응한다는 수학적 성질에 있습니다. 예를 들어 1바이트(8비트) 데이터는 16진수로 정확히 2자리(`00`~`FF`)로 표현할 수 있어, 2진수로 쓰면 8자리가 되는 정보를 사람이 읽기 좋은 길이로 압축할 수 있습니다.
8진수는 역사적으로, 초창기 컴퓨터(1960년대의 PDP-8 등)가 12비트·36비트 등 3의 배수인 워드 크기를 채택했던 데서 널리 퍼졌다고 알려져 있으며, 당시에는 8진수가 2진수와 대응시키기 더 편리한 경우가 많았습니다. 이후 컴퓨터가 8비트·16비트·32비트 단위(4의 배수)를 주류로 채택하게 되면서, 8진수보다 16진수가 실용적으로 더 편리해졌고, 오늘날에는 16진수가 주류가 되었습니다. 다만 유닉스의 파일 권한 표기처럼, 8진수가 지금도 현역으로 쓰이는 곳이 남아 있습니다.