Esercizio No. 9 Vettori

Esercizio No. 9 Vettori

Realizza un programma per convertire un numero binario nel corrispondente valore decimale.
Soluzione:

#include <iostream> 
#include <string.h> 
#include <math.h> 
using namespace std; 
const int n=10; 
main(){ 
//n=numero di bit della parola binaria
//num=risultato in decimale 

int j=0,num=0,i,lg;
//dichiaro stringa e vettore
char s[n]; int T[n]={0,0,0,0,0,0,0,0,0,0}; 
//acquisizione della stringa s
cin>>s; 
//lg=numero di caratteri della stringa 
lg=strlen(s); 
cout<<“stringa lunga:”<<lg;
//conversione della stringa in vettore di interi
for(i=0;i<lg;i++){
//48 è il codice ASCII corrispondente allo 0
    if((int)s[i]==48) T[i]=0; 
    else T[i]=1; 

cout<<endl<<“vettore degli interi:”;
//stampo il vettore degli interi

for(i=0;i < lg;i++)cout << T[i];
/* composizione del numero decimale basandosi sui
valori memorizzati nel vettore di interi */

for(i=lg-1;i>=0;i–){ 
     num+=T[i]*pow(2,j); 
     j++; 
}//fine for 
//in output il numero decimale trovato

cout<<endl<<num; 
}//fine main 

Il programma non fa altro che convertire la stringa inserita da tastiera in un vettori di 10 interi, sempre che lg<10 le posizioni non utilizzate nel vettore (sempre nella parte destra) rimangono impostate a 0.
Poi avremo il problema di realizzare l’algoritmo che realizza l’operazione:

 
dove i coefficienti bi sono i bit (0 o 1) che compongono il numero binario.
Quest’ultima operazione viene eseguita dal ciclo for (inverso)
for(i=lg-1;i>=0;i–){… 
dove ad ogni giro la variabile accumulatore ‘num’viene incrementata della i-esima potenza pesata del 2.

Commento all'articolo