#include <stdio.h>
int a[4], i, pot2 = 1, N10 = 0;
int main() {
// input array
for(i=0;i<4;i++) { // per i che va da 0 a 3
scanf("%d", &a[i] ); // input i-esimo elemento di a
}
// stampo le cifre come inserite
printf("N base 2: ");
for( i = 0; i <= 3; i++ ) {
printf("%d",a[i]);
}
printf(" --> ");
// ------- decodifica base 2 --> base 10 -------
// visito l'array dall'ultimo elemento al primo
// ovvero trovo le cifre nell'ordine c0, c1, c2, c3
// dato che a[3]=c0 a[2]=c1 a[1]=c2 a[0]=c3
// a ogni esecuzione del ciclo for sommo a N10
// il coefficente per la potenza di due che si trova
// nella varaibile pot2 che ad ongi esecuzione del ciclo
// viene calcolata moltiplicando il valore per 2
pot2 = 1; N10 = 0;
for( i = 3; i >= 0; i-- ) { // i-- eq.a i=i-1
N10 = N10 + a[i] * pot2;
pot2 = pot2 * 2;
}
// stampo il valore finale convertito in base 10
printf("N base 10: %d",N10);
}
To embed this project on your website, copy the following code and paste it into your website's HTML: