ExpertiDict

C · Intermediário · Português · Técnico

máscara de bits

/ˈmas.ka.ɾa dʒi ˈbi.tʃis/substantivo

Valor inteiro usado com os operadores &, |, ^ e ~ para ligar, desligar, inverter ou testar bits individuais, comum em flags de opções e em registradores de hardware.

Onde usar

Aparece em APIs que combinam opções num único inteiro, como as flags de open, e em código embarcado. Em review se cobra parênteses, porque == tem precedência maior que &.

Em código

#include <stdio.h>
int main(void) {
  unsigned f = 0;
  f |= 1u << 3;     // liga o bit 3
  f &= ~(1u << 3);  // desliga
  f ^= 1u;          // inverte o bit 0
  if (f & 1u) puts("bit 0 ligado");
}

Exemplos

Usa uma máscara de bits para guardar as permissões num único inteiro.

Faltou parêntese: o == roda antes do & na máscara.

Cuidado

Escrever if (x & MASK == 0): a comparação acontece antes do &, e o resultado não é o esperado.

Sinônimos

bitmask, flags

Veja também

Todos os termos de C