In questa lezione costruiremo un convertitore decimale binario in C++, al fine di convertire i numeri del sistema decimale in numeri binari.

Algoritmo per costruire un convertitore decimale binario in C++

Per realizzare questo algoritmo occorre rivedere come avviene la conversione da un sistema all’altro.

Ricordiamo dunque che per passare da un sistema decimale ad uno binario occorre dividere per 2, fino ad arrivare a 0, e considerare i resti delle divisioni.

Facciamo dunque un esempio, supponiamo di convertire il numero 38 da decimale a binario:

38:2 = 19  resto 0

19:2 = 9 resto 1

Banner Pubblicitario

9:2 = 4 resto 1

4:2 = 2 resto 0

2:2 = 1 resto 0

1:2 = 0 resto 1

Leggendo dal basso verso l’alto si ottiene così la sequenza binaria: 100110, così come potete calcolare anche nel convertitore online che ho realizzato con JavaScript.

Dunque ragioniamo su come realizzarlo adesso in C++.

Potremmo utilizzare gli array, ma sono delle strutture che ancora non vi ho presentato, dunque oggi utilizzeremo le stringhe, lasciando la soluzione con l’array per un’altra lezione.

Banner pubblicitario

Le variabili che ci servono per realizzare il convertitore decimale binario in C++ sono:

int n – Che rappresenta il numero da convertire.

string b – Che rappresenta la stringa che conterrà il numero binario, derivante dalla conversione.

Dopo aver dichiarato le variabili, inizializziamo b alla stringa vuota.

Poi costruiamo il ciclo while, impostando come condizione che n sia maggiore di zero.

Quindi finché n è positivo cominciamo a dividerlo per 2, se il resto della divisione è zero allora aggiungiamo 0 all’inizio della stringa b. Altrimenti aggiungiamo 1 sempre all’inizio di b.

Abbiamo così ottenuto il nostro numero in binario.

Ecco dunque il listato in C++:

#include <iostream>
#include <string>
using namespace std;

int main() {
    int n;
    string b = "";

    cout << "Inserisci un numero decimale: ";
    cin >> n;

    while (n > 0) {
        if (n % 2 == 0)
            b = '0' + b;
        else
            b = '1' + b;
        n = n / 2;
    }

    cout << b;

    return 0;
}

Questa, come vi dicevo, è solo una possibile realizzazione del convertitore decimale binario in C++, proponete pure il vostro metodo.

Alcuni link utili

Indice argomenti linguaggio C++

1- Introduzione al linguaggio C++

2- Variabili in C++

3- Operatori di assegnazione in C++

4- Esempi in C++

5- Casting in C++

Successione di Fibonacci in C++