Zig Academy · Leçon

Entiers de largeur arbitraire comme u3

Utilisez des types numériques à largeur de bits exacte.

Leçon 2 sur 413 étapes

Entiers de largeur arbitraire comme u3 est une leçon Zig Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Zig Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Zig Academy comprend 4 leçons au total.

Au-delà de u8 et u32

Zig ne se limite pas aux tailles habituelles. Vous pouvez demander un entier d'une largeur quelconque, de u1 jusqu'à des valeurs gigantesques.

Le modèle uN

Écrivez u suivi d'un nombre pour obtenir un entier non signé comportant exactement ce nombre de bits. Ainsi, u3 contient trois bits.

const level: u3 = 5;

Il existe aussi des versions signées

Remplacez le u par un i pour obtenir un entier signé d'une largeur quelconque : i4 couvre ainsi une petite plage de valeurs signées.

const delta: i4 = -3;

Contrôler précisément la plage

Un u3 stocke des valeurs de 0 à 7, car trois bits offrent huit combinaisons. Le type impose lui-même cette plage.

Trouver les limites

Demandez les bornes au type avec maxInt et minInt, au lieu de les mémoriser vous-même.

const hi = std.math.maxInt(u3); // 7
const lo = std.math.minInt(u3); // 0

Même les entiers d'un seul bit

Un u1 ne contient que 0 ou 1 et agit comme un bit brut que vous pouvez directement stocker et utiliser dans des calculs.

const bit: u1 = 1;

u0 est un vrai type

Même u0 existe. Il ne peut prendre que la valeur 0 et n'occupe aucun bit, ce qui est pratique dans le code générique.

Parfait pour les champs compactés

Les largeurs inhabituelles comme u3 et u5 sont idéales dans une packed struct, car chaque champ reçoit exactement les bits dont il a besoin.

const Color = packed struct {
    r: u5,
    g: u6,
    b: u5,
};

Attention au dépassement

Affecter 8 à un u3 dépasse sa plage. Dans les modes sûrs, Zig le détecte à l'exécution au lieu de le laisser revenir silencieusement au début.

Convertir pour élargir

Utilisez @as ou @intCast pour déplacer une valeur étroite vers un type plus large lorsque vous avez besoin de davantage de place pour calculer.

const small: u3 = 5;
const big: u16 = @as(u16, small);

Exprimer l'intention

Les largeurs arbitraires permettent au système de types de documenter vos véritables contraintes : u4 indique clairement qu'une valeur ne dépasse jamais 15. 🎯

Vérification rapide

Réfléchissez au nombre de valeurs distinctes qui tiennent dans trois bits.

Récapitulatif

Vous avez découvert les entiers de largeur arbitraire comme u3 et i4 : des plages exactes, parfaites pour les champs compactés, avec détection des dépassements dans les modes sûrs. 🎉

Gratuit pour commencer

Apprends Zig avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
30
Leçons
120

Questions Fréquemment Posées

La leçon « Entiers de largeur arbitraire comme u3 » est-elle gratuite ?

Oui — le texte complet de « Entiers de largeur arbitraire comme u3 » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Zig Academy, passe à CoddyKit PRO. Le cours Zig Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Entiers de largeur arbitraire comme u3 » ?

Utilisez des types numériques à largeur de bits exacte. Tu pratiques Zig Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Zig Academy ?

Aucune expérience préalable n'est requise. Zig Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Entiers de largeur arbitraire comme u3 » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Zig Academy ?

Oui. Chaque leçon Zig Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. packed struct pour une disposition exacte
  2. Entiers de largeur arbitraire comme u3
  3. Champs de bits et indicateurs
  4. extern struct et disposition ABI
← Retour à Zig Academy