Что это делает? [Дубликат]

Possible Duplicate:
The ternary (conditional) operator in C

Это пример кода из моей помощи учителя. Я понятия не имею, чтоtotal = total*2+ (n=='1'? 1:0); делает. Я думаю, что это умножить сумму на 2, но что с вопросительным знаком и1:0 соотношение?

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

Ответы на вопрос(4)

Ваш ответ на вопрос