o que "? 1: 0 ”significa [duplicado]

Esta pergunta já tem uma resposta aqui:

O que o ponto de interrogação e os dois pontos (?: Operador ternário) significam no objetivo-c? 13 respostas

Não entendo o que a terceira linha está tentando realizar. Recentemente, eu aprendi operadores inteligentes. Seria ótimo se alguém pudesse me acompanhar pelas duas últimas linhas. Entendo o operador de turno, mas eu não sou o operador de turno.

    void create(uint8_t bInt[], int64_t num){
      for (int pos = 0; pos < 32; pos++){ 
        bInt[pos] = (num & mask) ? 1 : 0;
        mask = mask << 1;
         }
       }

Para esta atribuição, estamos usando uma matriz de 32 elementos dos valores uint8_t para representar números inteiros de 32 bits. Por exemplo, o número inteiro 84193 em binário é 0 .... 0001 0100 1000 1110 0001. Em bInt [], ele seria armazenado como 1000 0111 0001 0010 1000 0000 .... 0. Obrigado pelo seu tempo

questionAnswers(0)

yourAnswerToTheQuestion