Inteiros de largura arbitrária, como u3
Use tipos numéricos com largura exata em bits.
Inteiros de largura arbitrária, como u3 é uma aula grátis de Zig Academy no CoddyKit. Esta é a aula 2 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.
Além de u8 e u32
Zig não se limita aos tamanhos comuns. Você pode solicitar um inteiro com qualquer largura de bits, de u1 até valores enormes.
O Padrão uN
Escreva u seguido de um número para obter um inteiro sem sinal com exatamente essa quantidade de bits. Assim, u3 comporta três bits.
const level: u3 = 5;As Versões com Sinal Também
Troque o u por um i para obter um inteiro com sinal de qualquer largura; assim, i4 cobre um intervalo pequeno com sinal.
const delta: i4 = -3;Controle Exato do Intervalo
Um u3 armazena valores de 0 a 7, pois três bits fornecem oito combinações. O próprio tipo impõe esse intervalo.
Encontrar os Limites
Consulte os limites do tipo com maxInt e minInt, em vez de memorizá-los.
const hi = std.math.maxInt(u3); // 7
const lo = std.math.minInt(u3); // 0Até Inteiros de Um Bit
Um u1 armazena apenas 0 ou 1, funcionando como um único bit bruto que você pode armazenar e calcular diretamente.
const bit: u1 = 1;u0 é um Tipo Real
Até mesmo u0 existe. Ele só pode ter o valor 0 e não ocupa nenhum bit, o que é útil em código genérico.
Perfeitos para Campos Compactados
Larguras incomuns, como u3 e u5, são ideais dentro de uma packed struct, permitindo que cada campo use exatamente os bits necessários.
const Color = packed struct {
r: u5,
g: u6,
b: u5,
};Cuidado com Overflow
Atribuir 8 a um u3 ultrapassa seu intervalo. Nos modos seguros, Zig detecta isso em tempo de execução em vez de permitir uma volta silenciosa do valor.
Converter para Ampliar
Use @as ou @intCast para mover um valor estreito para um tipo mais amplo quando precisar de mais espaço para calcular.
const small: u3 = 5;
const big: u16 = @as(u16, small);Expressar a Intenção
Larguras arbitrárias permitem que o sistema de tipos documente suas restrições reais; assim, u4 deixa claro que um valor nunca ultrapassa 15. 🎯
Verificação Rápida
Pense em quantos valores distintos cabem em três bits.
Recapitulação
Você conheceu inteiros de largura arbitrária, como u3 e i4: intervalos exatos, perfeitos para campos compactados, com overflow verificado nos modos seguros. 🎉
Perguntas Frequentes
A aula “Inteiros de largura arbitrária, como u3” é grátis?
Sim — o texto completo de “Inteiros de largura arbitrária, como u3” é 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 “Inteiros de largura arbitrária, como u3”?
Use tipos numéricos com largura exata em bits. 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 2 de 4.
Quanto tempo leva a aula “Inteiros de largura arbitrária, como u3”?
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
- struct empacotada para layout exato
- Inteiros de largura arbitrária, como u3
- Campos de bits e sinalizadores
- extern struct e layout ABI