8진수 → 2진수 변환기란?
이 도구는 8진수(base 8)로 표기된 숫자를 2진수(base 2)로 변환해 줍니다. 8진수는 0부터 7까지의 숫자만 사용하고, 2진수는 0과 1만 사용합니다. 8은 정확히 2³이기 때문에 8진수의 각 자리는 언제나 2진수 3비트 묶음 하나에 정확히 대응합니다. 덕분에 변환이 빠르고 정확하며, 반대 방향으로도 손쉽게 되돌릴 수 있습니다.
사용 방법
입력란에 올바른 8진수(0~7 사이의 숫자만 사용)를 입력하고 실행하면 됩니다. 변환기는 각 자리를 3비트로 펼쳐 순서대로 이어 붙인 뒤, 불필요한 앞자리 0을 제거하고 참고용으로 10진수 값까지 함께 보여줍니다. 만약 8이나 9를 입력하면 해당 숫자는 8진수에 존재하지 않으므로 잘못된 입력으로 표시됩니다.
공식 이해하기
8진수 각 자리 d는 다음 매핑에 따라 3비트 2진수 문자열로 바뀝니다: 0→000, 1→001, 2→010, 3→011, 4→100, 5→101, 6→110, 7→111. 이렇게 만들어진 비트 묶음을 순서대로 이어 붙이면 됩니다.
$$\text{Binary}_2 = \underset{i}{\Big\Vert}\; \operatorname{bin}_3\!\left(\text{Octal digit}_i\right)$$
수학적으로 표현하면 각 자리는 \(4b_2 + 2b_1 + b_0\)와 같으며, 여기서 각 \(b_i\)는 0 또는 1입니다.
예제로 풀어보기
8진수 725를 변환해 보겠습니다.
7 → 111, 2 → 010, 5 → 101. 이어 붙이면 111010101이 됩니다. 검산해 보면 $$725_8 = 7\times64 + 2\times8 + 5 = 448 + 16 + 5 = 469\ (\text{10진수})$$이고, \(111010101_2 = 469\)입니다. 결과가 정확히 일치합니다.
자주 묻는 질문
왜 하필 한 자리당 3비트인가요? \(2^3 = 8\)이기 때문에 8진수의 모든 자리(0~7)는 겹침 없이 2진수 3비트에 딱 들어맞습니다.
앞자리 0은 중요한가요? 내부적으로는 각 자리가 3비트로 바뀌지만, 최종 2진수 값에서는 (값이 0일 때의 0 하나를 제외하고) 앞자리 0을 제거합니다. 이는 일반적인 2진수 표기 방식과 동일합니다.
소수 부분이 있는 숫자도 변환할 수 있나요? 이 변환기는 정수 8진수를 처리합니다. 소수의 경우, 소수점 뒤의 각 자리 역시 3비트로 매핑되어 2진수 소수점 오른쪽에 묶여 표시됩니다.