O que isso faz? [duplicado]

Duplicata Possível:
O operador ternário (condicional) em C

Este é um exemplo de código da minha assistência ao professor. Eu não tenho idéia do quetotal = total*2+ (n=='1'? 1:0); faz. Eu acho que multiplica o total por 2, mas o que é com o ponto de interrogação e o1:0 relação?

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;
}

questionAnswers(4)

yourAnswerToTheQuestion