#include <stdio.h>

int a[4], i, pot2=1, N10=0; 

int main() {
    for(i=0; i<4; i++) {
        scanf("%d", &a[i]); //input dell'iesimo elemento di a (input array)
    }
    printf("N base 2: ");
    for(i=0; i<=3; i++) {  //i<4 = i<=3
        printf("%d", a[i]);  //fino a questo punto stampa l'input dell'array inserito dall'utente in binario
    }
    printf(" ---> ");
    //conversione da base 2 a 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[4]= {1,1,1,0} quindi la posizione c0 è 0, ovvero 
    //0 * 2^0 = 0, e così via ...)
    //a ogni esecuzione del ciclo for sommo a N10 il coefficente per la potenza di due che si trova 
    //nella varaibile pot2 che ad ogni esecuzione del ciclo viene calcolata moltiplicando il valore per 2
    pot2 = 1; N10 = 0;
    for(i=3; i>=0; i--) { //al contrario perchè devo scrivere prima a[3] visto che è = a c0, ovver la prima posizione
        N10 = N10 + a[i] * pot2;
        pot2 = pot2 * 2; 
    }
    printf("N base 10: %d",N10); //stampo il valore finale convertito in base 10
}

Embed on website

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