⌨ Spécialité NSI · Numérique et sciences informatiques Première Générale · Chapitre 1

Représentation des entiers

Bases 10, 2 et 16, conversions, bits et octets, nombre de valeurs codables sur n bits, addition binaire, entiers relatifs en complément à deux et dépassement de capacité.

1. Bases de numération

Définition

En base $b$, un nombre s'écrit avec des chiffres de $0$ à $b - 1$, chaque position correspondant à une puissance de $b$. En binaire (base 2) on n'utilise que $0$ et $1$ : ce sont les bits. Un octet est un groupe de $8$ bits. En hexadécimal (base 16) on utilise $0$–$9$ puis $A$–$F$ ($A = 10$, …, $F = 15$).

128164032116180412011poidsbits1011 0101₂ = 128 + 32 + 16 + 4 + 1 = 181₁₀bit de poids fort à gauche, bit de poids faible à droite
Écriture binaire sur un octet : chaque bit est associé à une puissance de 2.

Méthode · Convertir

Binaire → décimal : additionner les poids des bits à $1$. Décimal → binaire : divisions successives par $2$, puis lire les restes de bas en haut ($13 = 1101_2$). Binaire ↔ hexadécimal : regrouper les bits par $4$ ($1011\,0101_2 = \text{B}5_{16}$).

Propriété · Combien de valeurs ?

Avec $n$ bits, on code $2^n$ valeurs : les entiers naturels de $0$ à $2^n - 1$. Un octet code $256$ valeurs ($0$ à $255$).

2. Addition binaire

Exemple · Poser une addition

$0 + 0 = 0$ ; $0 + 1 = 1$ ; $1 + 1 = 10_2$ (on pose $0$, retenue $1$). Exemple : $0110_2 + 0111_2 = 1101_2$ ($6 + 7 = 13$).

3. Entiers relatifs : complément à deux

Définition

Sur $n$ bits, on code les entiers de $-2^{n-1}$ à $2^{n-1} - 1$. Un positif s'écrit comme d'habitude ; pour un négatif $-x$, on inverse tous les bits de $x$ puis on ajoute $1$. Le bit de poids fort vaut $1$ pour les négatifs.

Exemple · −5 sur 8 bits

$5 = 0000\,0101$ ; inversion : $1111\,1010$ ; $+1$ : $1111\,1011$. Vérification : $1111\,1011 + 0000\,0101 = 1\,0000\,0000$, le $9^\text{e}$ bit est perdu : on obtient bien $0$.

Attention · Dépassement de capacité

Sur $8$ bits signés, $127 + 1$ donne $-128$ : le résultat sort de l'intervalle représentable. En Python, les entiers n'ont pas de taille limite, mais dans de nombreux langages et dans le matériel, ils en ont.

Activité · Conversions en Python

MatérielPython (console).
ConsigneTester bin(181), hex(181), int("10110101", 2) et int("B5", 16).
Résultat'0b10110101', '0xb5', 181, 181.
BilanLe préfixe 0b indique le binaire, 0x l'hexadécimal.

⚠️ Une erreur dans ce cours ? Signalez-la

S'entraîner

Exercices corrigés

🎓 20 exercices corrigés et un quiz vous attendent dans ce chapitre.

Créez votre compte gratuit pour voir les corrections, faire les quiz et suivre votre progression.

Vérifier

Avez-vous bien compris ?

Répondez au quiz : la correction s'affiche immédiatement.