#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);

}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: