#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
}
To embed this project on your website, copy the following code and paste it into your website's HTML: