2진수에서 8진수로

예제, 참조 테이블 및 C 코드 가이드를 통해 이진수를 8진수로 단계별로 변환하는 방법을 알아보세요. 무료 바이너리-8진 변환기를 사용해 보세요.

바이너리에서 8진수로의 변환이란 무엇입니까?

2진수 와 8진수는 컴퓨팅에 사용되는 두 가지 다른 숫자 시스템입니다. 2진수는 2진법으로 숫자 0과 1만 사용합니다. 8진수는 8진수로 0부터 7까지의 숫자를 사용합니다. 2진수에서 8 진수로의 변환은 2진수로 쓴 숫자를 가져와서 실제 값을 변경하지 않은 채 8진수로 다시 쓰는 과정입니다.

이 변환은 컴퓨터 과학 과정, 하위 수준 프로그래밍, 디지털 전자 공학 및 네트워킹에서 자주 나타납니다. 왜냐하면 8진수는 정밀도를 잃지 않고 이진 값을 표현하는 더 짧고 읽기 쉬운 방법을 제공하기 때문입니다.

2진수 및 8진수 시스템 이해

무엇이든 변환하기 전에 각 시스템이 무엇을 나타내는지 아는 것이 도움이 됩니다.

  • 이진수(2진수): 0과 1의 두 숫자만 사용합니다. 각 위치는 2의 거듭제곱을 나타냅니다.
  • 8진수(8진수): 0부터 7까지의 8자리 숫자를 사용합니다. 각 위치는 8의 거듭제곱을 나타냅니다.

3개의 이진수로 구성된 각 그룹은 정확히 하나의 8진수에 해당합니다. 왜냐하면 2 3은 8이기 때문입니다. 이 관계는 이진수에서 8진수로의 변환의 전체 기초이며, 이것이 3개 세트로 그룹화하는 것이 매우 깔끔하게 작동하는 이유입니다.

이진수가 3개 세트로 그룹화되는 이유

8진수에는 8개의 숫자 값(0~7)이 있습니다. 2^3 = 8 이므로 이진수는 해당 값 8개를 모두 나타내려면 정확히 3비트가 필요합니다. 이는 3개의 이진수로 구성된 각 그룹이 나머지나 중복 없이 단일 8진수로 직접 매핑됨을 의미합니다.

대신 이진수가 4개 세트로 그룹화되면 2^4 = 16 이므로 16진수(기본 16)로 변환됩니다. 그룹 크기는 항상 대상 기반의 숫자 범위를 포괄하는 데 필요한 비트 수와 일치합니다.

이진수를 8진수로 변환하는 방법(단계별)

바이너리를 8진수로 변환하는 방법 에 대한 표준 수동 방법은 다음과 같습니다.

  1. 이진수의 가장 오른쪽 숫자부터 시작합니다.
  2. 이진수를 오른쪽에서 왼쪽으로 3개씩 그룹화합니다.
  3. 가장 왼쪽 그룹의 숫자가 3자리 미만인 경우 앞에 0을 붙입니다.
  4. 아래 참조 표를 사용하여 3개의 이진수 그룹을 해당하는 8진수로 변환합니다.
  5. 최종 8진수를 얻으려면 2진수 그룹과 동일한 순서로 결과 8진수를 씁니다.

2진수에서 8진수 참조 테이블

바이너리(3비트) 8진수
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7

2진수에서 8진수로의 변환 예

예 1: 101101을 8진수로 변환

오른쪽부터 3개 세트로 그룹화: 101 101

  • 101 = 5
  • 101 = 5

결과: 2진수 101101 = 8진수 55

예 2: 11010을 8진수로 변환

이 번호는 5자리이므로 3개의 전체 그룹을 형성하려면 앞에 0이 필요합니다: 011 010

  • 011 = 3
  • 010 = 2

결과: 2진수 11010 = 8진수 32

예시 3: 111010110을 8진수로 변환

3개 세트로 그룹화: 111 010 110

  • 111 = 7
  • 010 = 2
  • 110 = 6

결과: 2진수 111010110 = 8진수 726

계산기 없이 이진수를 8진수로 변환하는 방법

위의 그룹화 방법은 전적으로 종이에서만 작동하므로 이 변환에는 도구가 필요하지 않습니다. 일반적으로 8행 참조 테이블을 기억하는 것만으로도 빠르고 안정적인 수동 변환이 가능합니다.

분수 부분이 있는 이진수의 경우 동일한 그룹화 규칙이 적용되지만 이진 점에서 양방향으로 바깥쪽으로 작동하여 필요한 경우 맨 오른쪽 분수 그룹에 후행 0을 채웁니다.

바이너리-8진 변환기를 사용하는 방법

수동 변환은 학습에 유용하지만 긴 바이너리 문자열이나 빈번한 변환의 경우 온라인 바이너리-8진 변환기를 사용하면 시간을 절약하고 그룹화 실수를 방지할 수 있습니다. 일반적으로 사용하는 방법은 다음과 같습니다.

  1. 입력 필드에 이진수를 입력하거나 붙여넣습니다.
  2. 도구에서 0과 1만 입력되었는지 확인합니다.
  3. 변환된 8진수 결과를 즉시 확인합니다.

또한 좋은 변환기는 변환을 시도하기 전에 0이나 1이 아닌 잘못된 숫자와 같은 잘못된 입력에 플래그를 지정합니다. 프로젝트에 이진수를 8진수 대신 읽을 수 있는 문자로 변환하는 작업이 포함된 경우 당사의 이진수-텍스트 변환기가 해당 특정 변환을 처리합니다.

C에서 이진수를 8진수로 변환하는 방법

C 프로그램에서 2진수를 8진수로 변환하는 것은 일반적으로 간단한 논리적 접근 방식을 따릅니다. 즉, 2진수를 정수(또는 문자열)로 읽고 내부적으로 10진수 값으로 변환한 다음 해당 10진수 값을 8진수로 변환합니다.

다음은 간단하고 올바른 예입니다.

#include <stdio.h>

int main() {
    long long binary, decimal = 0, octal = 0, base = 1;
    int remainder;

    printf("Enter a binary number: ");
    scanf("%lld", &binary);

    long long temp = binary;

    // Step 1: Convert binary to decimal
    while (temp > 0) {
        remainder = temp % 10;
        decimal += remainder * base;
        base *= 2;
        temp /= 10;
    }

    // Step 2: Convert decimal to octal
    base = 1;
    long long tempDecimal = decimal;
    while (tempDecimal > 0) {
        remainder = tempDecimal % 8;
        octal += remainder * base;
        base *= 10;
        tempDecimal /= 8;
    }

    printf("Octal equivalent: %lld\n", octal);
    return 0;
}

이 프로그램은 이진수 입력을 숫자 시퀀스로 처리하고 십진수 값을 다시 작성한 다음 반복적으로 해당 십진수 값을 8로 나누어 한 번에 한 자리씩 8진수 결과를 만듭니다. 비트별 그룹화 논리에 의존하지 않고 초보자가 코드를 더 쉽게 읽을 수 있기 때문에 일반적인 접근 방식입니다.

이진수를 8진수로 변환할 때 흔히 발생하는 실수

실수 왜 문제가 되는가
오른쪽 대신 왼쪽에서 숫자 그룹화 잘못된 그룹화 및 잘못된 최종 결과 생성
가장 왼쪽 그룹을 0으로 채우는 것을 잊어버렸습니다. 불완전하거나 잘못 읽힌 숫자 그룹으로 이어집니다.
2진수에서 8진수 단계와 2진수에서 10진수 단계 혼합 완전히 다른(십진수) 출력이 발생합니다.
0, 1 이외의 숫자 입력 변환 논리를 중단시키는 잘못된 바이너리 입력
참조 테이블을 잘못 읽었습니다. 주어진 3비트 그룹에 대해 잘못된 8진수를 생성합니다.

자주 묻는 질문

2진수를 8진수로 변환하는 가장 빠른 방법은 무엇입니까?

이진수를 오른쪽부터 3개 세트로 그룹화한 다음 참조 테이블을 사용하여 각 그룹을 8진수와 일치시키는 것이 가장 빠른 수동 방법입니다. 더 긴 숫자의 경우 온라인 변환기가 더 빠릅니다.

2진수를 8진수로 변환할 때 3자리 그룹을 사용하는 이유는 무엇입니까?

8진수는 8개의 숫자 값을 가질 수 있고, 3개의 이진수는 정확히 8개의 조합(2 3 = 8)을 나타낼 수 있기 때문입니다. 이로 인해 3개로 그룹화하면 두 시스템이 자연스럽게 일치하게 됩니다.

모든 이진수를 8진수로 변환할 수 있나요?

예. 전체 이진수는 숫자를 3개 세트로 그룹화하고 필요할 때 맨 왼쪽 그룹에 앞에 0을 채워서 8진수로 변환할 수 있습니다.

2진수에서 8진수로의 변환은 2진수에서 16진수로의 변환과 다릅니까?

예. 2진수에서 8진수 그룹은 3개의 세트로 숫자를 나타내고(8진수는 8진수이므로), 2진수에서 16진수 그룹은 4개의 세트로 숫자를 표시합니다(16진수는 16진수이므로).

8진수로 변환하기 전에 먼저 10진수로 변환해야 합니까?

아니요, 정수 이진수에는 해당되지 않습니다. 직접 그룹화 방법은 중간 단계로 10진수를 필요로 하지 않고 2진수를 8진수로 변환하지만 일부 프로그래밍 접근 방식(위의 C 예와 같은)은 내부적으로 10진수를 사용합니다.

결론

이진수를 8진수로 변환하는 것은 하나의 핵심 아이디어로 귀결됩니다. 즉, 이진수를 3개 세트로 그룹화하고 각 그룹을 해당하는 8진수와 일치시키는 것입니다. 그룹화 습관이 자연스러워지면 긴 이진수를 직접 변환하는 것도 빠르고 안정적이게 됩니다.

특히 긴 바이너리 문자열의 경우 또는 자체 계산을 다시 확인할 때 수동 작업을 건너뛰고 싶다면 바이너리를 8진수로 변환기를 사용하여 빠른 결과를 얻을 수 있습니다. 그리고 다른 방법으로 일반 텍스트를 바이너리로 변환해야 하는 경우, 당사의 텍스트-바이너리 변환기가 해당 변환을 쉽게 처리합니다.