Enteros de ancho arbitrario como u3
Use tipos numéricos con un ancho de bits exacto.
Enteros de ancho arbitrario como u3 es una lección gratuita de Zig Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Zig Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Zig Academy incluye 4 lecciones en total.
Más allá de u8 y u32
Zig no se limita a los tamaños habituales. Puede solicitar un entero de cualquier ancho de bits, desde u1 hasta valores enormes.
El patrón uN
Escriba u seguido de un número para obtener un entero sin signo con exactamente esa cantidad de bits. Por ejemplo, u3 contiene tres bits.
const level: u3 = 5;También hay versiones con signo
Cambie la u por una i para obtener un entero con signo de cualquier ancho; por ejemplo, i4 cubre un rango pequeño con signo.
const delta: i4 = -3;Control exacto del rango
Un u3 almacena valores del 0 al 7, porque tres bits proporcionan ocho combinaciones. El propio tipo impone ese rango.
Encontrar los límites
Consulte los límites del tipo con maxInt y minInt, en lugar de memorizarlos.
const hi = std.math.maxInt(u3); // 7
const lo = std.math.minInt(u3); // 0Incluso enteros de un bit
Un u1 solo contiene 0 o 1 y actúa como un único bit sin procesar que puede almacenar y con el que puede calcular directamente.
const bit: u1 = 1;u0 es un tipo real
Incluso existe u0. Solo puede tener el valor 0 y no ocupa ningún bit, lo que resulta útil en código genérico.
Perfectos para campos empaquetados
Anchos poco habituales como u3 y u5 son ideales dentro de una packed struct, ya que permiten que cada campo ocupe exactamente los bits que necesita.
const Color = packed struct {
r: u5,
g: u6,
b: u5,
};Cuidado con el desbordamiento
Asignar 8 a un u3 desborda su rango. En los modos seguros, Zig lo detecta durante la ejecución en lugar de dejar que se desborde silenciosamente.
Convertir para ampliar
Use @as o @intCast para pasar un valor de un tipo estrecho a otro más amplio cuando necesite más espacio para calcular.
const small: u3 = 5;
const big: u16 = @as(u16, small);Expresar la intención
Los anchos arbitrarios permiten que el sistema de tipos documente sus restricciones reales, de modo que un u4 deja claro que un valor nunca supera 15. 🎯
Comprobación rápida
Piense en cuántos valores distintos caben en tres bits.
Repaso
Ha conocido los enteros de ancho arbitrario, como u3 e i4: rangos exactos, ideales para campos empaquetados y con desbordamientos comprobados en los modos seguros. 🎉
Preguntas frecuentes
¿La lección «Enteros de ancho arbitrario como u3» es gratis?
Sí — el texto completo de «Enteros de ancho arbitrario como u3» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Zig Academy, actualiza a CoddyKit PRO. El curso de Zig Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Enteros de ancho arbitrario como u3»?
Use tipos numéricos con un ancho de bits exacto. Practicas Zig Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Zig Academy?
No se requiere experiencia previa. Zig Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Enteros de ancho arbitrario como u3»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Zig Academy?
Sí. Cada lección de Zig Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- packed struct para un diseño exacto
- Enteros de ancho arbitrario como u3
- Campos de bits y flags
- extern struct y diseño de la ABI