Programma C per convertire il sistema numerico binario in ottale

Programma C per convertire il sistema numerico binario in ottale

Scrivere un programma C per inserire un numero binario dall'utente e convertirlo in un sistema di numeri ottali. Come convertire dal sistema numerico binario al sistema numerico ottale in C. Logica per convertire il sistema numerico binario in ottale nella programmazione C.

Esempio

Inserimento

Input binary number: 00110111

Uscita

Octal number: 67

Conoscenze richieste

Programmazione C di base, istruzione If, ​​ciclo For, ciclo While, ciclo annidato

Sistema di numeri binari

Sistema di numeri binari è un sistema numerico in base 2. Il sistema di numeri binari utilizza solo 2 simboli per rappresentare tutti i suoi numeri, ovvero 0 e 1.

Sistema di numeri ottali

Sistema di numeri ottali è un sistema numerico in base 8. Il sistema numerico ottale utilizza 8 simboli per rappresentare tutti i suoi numeri, ovvero 0 1 2 3 4 5 6 7

Logica per convertire il sistema numerico binario in ottale

Per rendere le cose semplici e solide, ho diviso la logica in due semplici passaggi.

  1. Raggruppa tutti i bit binari su 3 cifre partendo dal lato destro.
  2. Scrivi il valore ottale corrispondente per ogni valore binario raggruppato.

Tabella di conversione da binario a ottale

Binario Ottale
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7

Logica passo passo per convertire il sistema numerico binario in ottale.

  1. Inserisci il numero binario dall'utente. Memorizzalo in una variabile, ad esempio binary .
  2. Inizializza una variabile per memorizzare l'ottale convertito, ad esempio octal = 0 .
  3. Trova le ultime tre cifre del binario, ad esempio digit = num % 1000 .
  4. Trova l'equivalente ottale (usando la tabella da binario a ottale) delle tre cifre binarie trovate sopra.
  5. Aggiungi il valore ottale del binario trovato nel passaggio precedente a ottale, aumentando il valore posizionale.
  6. Rimuovi le ultime tre cifre del numero binario. Poiché vengono elaborati, pronuncia binary = binary / 1000 .
  7. Aumenta il valore posizionale di ottale utilizzando place = place * 10 .
  8. Ripeti i passaggi da 3 a 7 fino a binary > 0 .

Programma per convertire il sistema numerico binario in ottale

/**
 * C program to convert binary to octal number system
 */

#include <stdio.h>

int main()
{
    int octalConstant[] = {0, 1, 10, 11, 100, 101, 110, 111};

    long long binary, octal, tempBinary;
    int digit, place, i;

    octal = 0;
    place= 1;
    
    /* Input binary number from user */
    printf("Enter any binary number: ");
    scanf("%lld", &binary);

    /* Copy original binary value to temp variable */
    tempBinary = binary;
    

    while(tempBinary != 0)
    {
        /* Extract last three digit of binary */
        digit = tempBinary % 1000;

        /* Find octal equivalent of 3 digit binary */
        for(i=0; i<8; i++)
        {
            if(octalConstant[i] == digit)
            {
                /*
                 * Increase the place value of octal
                 * and add the previous octal value
                 */
                octal = (i * place) + octal;
                break;
            }
        }

        /* Remove the last three digit of binary */
        tempBinary /= 1000;

        /* Increase the place value */
        place *= 10; 
    }

    printf("Original binary number = %lld\n", binary);
    printf("Octal number = %lld", octal);

    return 0;
}

Uscita

Enter any binary number: 11001111
Original binary number = 11001111
Octal number = 317