⌨ 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.

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.

1

Binaire vers décimal

★☆☆

Convertir $1101_2$ et $10010_2$ en décimal.

🔒 Correction réservée aux membres Créer un compte gratuit →
2

Décimal vers binaire

★☆☆

Convertir $25$ en binaire par divisions successives.

🔒 Correction réservée aux membres Créer un compte gratuit →
3

Octet maximal

★☆☆

Quel est le plus grand entier naturel codable sur un octet ? sur $16$ bits ?

🔒 Correction réservée aux membres Créer un compte gratuit →
4

Nombre de bits nécessaires

★★☆

Combien de bits faut-il au minimum pour coder les entiers de $0$ à $1\,000$ ?

🔒 Correction réservée aux membres Créer un compte gratuit →
5

Hexadécimal vers décimal

★☆☆

Convertir $2\text{F}_{16}$ en décimal.

🔒 Correction réservée aux membres Créer un compte gratuit →
6

Binaire vers hexadécimal

★★☆

Convertir $1110\,0110_2$ en hexadécimal.

🔒 Correction réservée aux membres Créer un compte gratuit →
7

Couleur RGB

★★☆

Une couleur web s'écrit #FF8000. Donner les valeurs décimales du rouge, du vert et du bleu.

🔒 Correction réservée aux membres Créer un compte gratuit →
8

Addition binaire

★☆☆

Calculer $1011_2 + 0110_2$. Vérifier en décimal.

🔒 Correction réservée aux membres Créer un compte gratuit →
9

Multiplier par 2

★★☆

Que se passe-t-il quand on ajoute un $0$ à droite d'un nombre binaire ?

🔒 Correction réservée aux membres Créer un compte gratuit →
10

Complément à deux

★★☆

Coder $-12$ sur $8$ bits en complément à deux.

🔒 Correction réservée aux membres Créer un compte gratuit →
11

Décoder un négatif

★★☆

Quel entier relatif représente $1111\,1110$ sur $8$ bits ?

🔒 Correction réservée aux membres Créer un compte gratuit →
12

Intervalle signé

★☆☆

Quel intervalle d'entiers peut-on coder sur $8$ bits en complément à deux ? sur $16$ bits ?

🔒 Correction réservée aux membres Créer un compte gratuit →
13

Dépassement

★★☆

Sur $8$ bits signés, que donne $100 + 50$ ? Pourquoi ?

🔒 Correction réservée aux membres Créer un compte gratuit →
15

Python int

★☆☆

Que renvoie int("1111", 2) ? et int("ff", 16) ?

🔒 Correction réservée aux membres Créer un compte gratuit →
16

Fonction de conversion

★★★

Écrire une fonction binaire(n) qui renvoie l'écriture binaire (chaîne) d'un entier $n \geq 1$ par divisions successives.

🔒 Correction réservée aux membres Créer un compte gratuit →
17

Fonction inverse

★★★

Écrire une fonction decimal(s) qui convertit une chaîne binaire en entier sans utiliser int(s, 2).

🔒 Correction réservée aux membres Créer un compte gratuit →
18

Pair ou impair

★☆☆

Comment savoir si un nombre écrit en binaire est pair ?

🔒 Correction réservée aux membres Créer un compte gratuit →
19

Ordres de grandeur

★★☆

Combien d'octets dans $1$ kio ? dans $1$ ko ?

🔒 Correction réservée aux membres Créer un compte gratuit →
20

Vrai ou faux

★★☆

a) $1\,0000_2 = 16$. b) Sur $4$ bits on code $16$ valeurs. c) En complément à deux, le bit de poids fort d'un négatif vaut $0$.

🔒 Correction réservée aux membres Créer un compte gratuit →

Vérifier

Avez-vous bien compris ?

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