0Pricing
Zig Academy · Aula

Campos de bits e sinalizadores

Empacote valores booleanos e campos pequenos de forma compacta.

Campos de bits e sinalizadores é uma aula grátis de Zig Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Zig Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Zig Academy inclui 4 aulas no total.

Muitos Sinalizadores, Um Byte

Configurações geralmente são apenas interruptores ligados ou desligados. Armazená-las como campos de bits guarda vários sinalizadores em um único inteiro pequeno.

Booleanos Usam Um Bit

Dentro de uma packed struct, um bool ocupa exatamente um bit. Agrupe vários e eles compartilharão um único byte.

const Mode = packed struct {
    bold: bool,
    italic: bool,
    underline: bool,
};

Combinar Booleanos e Inteiros Pequenos

Uma packed struct pode combinar flags com inteiros estreitos, representando um registrador real em que cada grupo de bits tem um significado.

const Reg = packed struct {
    enabled: bool,
    speed: u3,
    mode: u2,
};

Ler um Sinalizador pelo Nome

Você acessa cada bit pelo seu nome de campo, portanto o código permanece claro mesmo quando os dados estão compactados.

var m = Mode{ .bold = true, .italic = false, .underline = false };
if (m.bold) {}

Alternar um Sinalizador

Defina ou limpe um sinalizador atribuindo um valor ao campo. Não é necessário mascarar bits manualmente; Zig cuida da aritmética de bits para você.

m.italic = true;

A Visão dos Bits Brutos

Precisa do número subjacente? @bitCast transforma a struct de sinalizadores no inteiro de suporte para armazenamento ou comparação.

const bits: u3 = @bitCast(m);

Decodificar Bits Recebidos

Está lendo bits de um arquivo ou dispositivo? Converta o inteiro bruto novamente na sua struct para decodificá-lo em sinalizadores nomeados.

const incoming: u3 = 0b101;
const m: Mode = @bitCast(incoming);

Enums como Campos de Bits

Um campo pode ser um enum com um inteiro de suporte pequeno, fornecendo opções nomeadas que ainda cabem em poucos bits.

const Speed = enum(u2) { slow, medium, fast };

Por que Compactar

Campos de bits economizam memória e correspondem exatamente ao hardware, algo importante em código embarcado, drivers e formatos de arquivos binários.

O Layout Permanece Previsível

Como a struct é compactada, a ordem dos bits nunca muda. O que você declara é o que o hardware e outros programas verão.

Código Claro, Dados Compactos

A grande vantagem: você escreve nomes de campos legíveis enquanto os dados permanecem tão compactos quanto em operações manuais com bits. 🎛️

Verificação Rápida

Pense em quanto espaço um bool ocupa dentro de uma packed struct.

Recapitulação

Você compactou flags em um único inteiro: bools usam um bit, inteiros estreitos e enums podem ser combinados, e @bitCast alterna entre a struct e os bits brutos. 🎉

Perguntas Frequentes

A aula “Campos de bits e sinalizadores” é grátis?

Sim — o texto completo de “Campos de bits e sinalizadores” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Zig Academy, atualize para CoddyKit PRO. O curso de Zig Academy inclui 4 aulas no total.

O que vou aprender em “Campos de bits e sinalizadores”?

Empacote valores booleanos e campos pequenos de forma compacta. Você pratica Zig Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Zig Academy?

Nenhuma experiência prévia é necessária. Zig Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Campos de bits e sinalizadores”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Zig Academy?

Sim. Cada aula de Zig Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. struct empacotada para layout exato
  2. Inteiros de largura arbitrária, como u3
  3. Campos de bits e sinalizadores
  4. extern struct e layout ABI
← Voltar para Zig Academy