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
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.
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++
3- Operatori di assegnazione in C++
Successione di Fibonacci in C++
In realtà così il numero binario esce scritto al contrario…
No in realtà è corretto! Prova ad esempio ad inserire il numero 4 avrai in output 100 che è corretto!