¿Qué hace esto? [duplicar]
Posible duplicado:
El operador ternario (condicional) en C
Este es un ejemplo de código de la ayuda de mi maestro. No tengo ni idea de quetotal = total*2+ (n=='1'? 1:0);
hace. Creo que se multiplica el total por 2, pero ¿qué pasa con el signo de interrogación y el1:0
relación?
int bcvt(FILE *infile){
char n;
int i, total=0;
for(i=0; i<32; i++){
fscanf(infile, "%c", &n);
total = total*2+ (n=='1'? 1:0);
}
char dummy;
fscanf(infile, "%c", &dummy);
return total;
}