| 223 | 234 |
|---|---|
| 0-3 | 0-3 |
| 4-7 | 4-7 |
| 8-12 | 8-12 |
| 13-14 | 13-15 |
| 15-18 | 16-17 |
| 19-26 | 18-25 |
| 27-… | — |
@0 Préparer une présentation orale résumant 2 à 3 notions abordées lors de la dernière séance de cours :


Pour mieux comprendre ce qui se passe dans un ordinateur, nous allons étudier les bases numériques décimale, binaire, octale, hexadécimale… . Mais avant cela, telle la Cigale avant la fin de l’été, chantons s’il vous plait !!!
Les nombres décimaux (en base 10) utilisent les 10 chiffres 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9. Voici la comptine des nombres en base 10 : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 …
Les nombres (en base 9) utilisent les 9 chiffres 0, 1, 2, 3, 4, 5, 6, 7 et 8. Voici la comptine des nombres en base 9 : 0, 1, 2, 3, 4, 5, 6, 7, 8
Voici des “comptines numériques” incomplètes :
@1 Compléter les comptines ci-dessus.
À l’intérieur d’un microprocesseur, dans un ordinateur, il n’y a que des 1 et des 0… si l’on peut dire, puisqu’en fait il n’y a que du courant électrique, qui passe ou ne passe pas dans les circuits :
On aurait pu dire blanc et noir tout aussi bien, ou Oui et NON, ou encore VRAI ou FAUX.
Nous allons donc apprendre à parler en binaire !!!
A savoir :
Les nombres que nous utilisons habituellement sont ceux de la base 10 (système décimal).
Nous disposons de dix chiffres différents de 0 à 9 pour écrire tous les nombres.
Par exemple, le nombre décimal 2438 est la somme de 8 unités, 4 centaines, 3 dizaines et 2 milliers.
Nous pouvons écrire :
Avec des puissances de 10 cela donne :
L’utilisation de paranthèses est mathématiquement inutile ici mais aide à la lecture … dans un premier temps !
Aussi, le nombre 201 n’a pas la même valeur (ne représente pas la même quantité) que le nombre 120, ou le nombre 102 ou encore 210, 012 ou 021. Ces nombres sont pourtant composés des mêmes chiffres. L’ordre dans lequel sont écrits les chiffres est fondamental, puisque dans le système décimal (ou base 10), on décompose les nombres à l’aide de puissances de 10 différentes suivant la place de chaque chiffre.
Ainsi, 201 = 2 x 102 + 0 x 101 + 1 x 100
Ici « 2 » est le chiffre qui a le poids le plus fort
Mais, 120 = 1 x 102 + 2 x 101 + 0 x 100
Dans ce cas, le chiffre de poids le plus fort est 1 et celui de poids le plus faible est 0.
@2 De la même manière, décomposer les nombres : 315 et 135 :
Les objets et systèmes technologiques ont souvent deux états possibles :
Dans le système binaire on « construit » les nombres à l’aide de 2 chiffres seulement : 0 et 1 et .
De manière générale, une base N est composée de N chiffres de 0 à N-1 exemples : de 0 à 9 en base 10, de 0 à 4 en base 5 ou de 0 à 1 en base 2.
Le nombre binaire 11002 ne représente pas la même quantité que le nombre binaire 10012 ou que
La décomposition d’un nombre en base 2 se fait donc de la même manière qu’en base 10 mais, à l’aide de puissances de 2.
Ainsi : 11002 = 1 x 23 + 1 x 22 + 0 x 21 + 0 x 20
Alors que : 10012 = 1 x 23 + 0 x 22 + 0 x 21 + 1 x 20
On a donc : 11002 = 1 x 8 + 1 x 4 + 0 x 2 + 0 x 1 = 1210
Et aussi : 10012 = 1 x 8 + 0 x 4 + 0 x 2 + 1 x 1 = 910
Désormais, pour éviter toute confusion lors de l’utilisation de systèmes numériques différents, la base de chaque nombre pourra être spécifiée en indice.
Par exemple, 1110 = 10112 alors que 112 = 310 . Méfiance !!!
@3 De la même manière, décomposer les nombres : 1002 , 1012 et 112
Définitions :
Pour convertir un nombre binaire en nombre décimal nous allons utiliser les puissances de 2 comme nous l’avons introduit plus haut.
Exemple :
11002 = 1 x 23 + 1 x 22 + 0 x 21 + 0 x 20 = 8 + 4 + 0 + 0 = 1210
Cette écriture “en ligne” est très sensible aux erreurs.
Exemple :
11002 = 1 x 22 + 1 x 21 + 0 + 0 = 4 + 2 + 0 + 0 = 610 .
A croire que les zéros ne valent rien, on prend vite l’habitude de simplifier les calculs pour aller au plus vite. Or, ce sont bien les zéros qui font la grandeur des nombres. Quand on pense qu’entre le salaire d’un footballeur et celui d’un ingénieur, il peut y avoir 3 “petits” zéros d’écart…
Pour éviter cette “grave” erreur de conversion, nous utiliserons souvent un tableau de conversion:
| 25 | 24 | 23 | 22 | 21 | 20 | |
|---|---|---|---|---|---|---|
| 110012 => | 0 | 1 | 1 | 0 | 0 | 1 |
| 2510 <= | 0 | 16 | 8 | 0 | 0 | 1 |
Attention à numéroter les puissances de 2 en partant de la droite !
@4 De la même manière, convertir en base « 10 » les nombres : 1012, 10012, 01012 et 011112.
Maintenant que nous sommes experts en nombres binaires, la conversion de décimal à binaire nous apparaît donc comme une simple décomposition en puissance de 2.
Imaginons que nous connaissions toutes les puissances de 2 : 1, 2, 4, 8 …. Et convertissons 1910 en binaire.
On reconnaît donc assez rapidement :
Ici aussi la probabilité est très forte d’oublier un zéro en chemin et de donner un résultat très largement faux.
Utilisons le tableau de conversion dans l’autre sens :
| 25 | 24 | 23 | 22 | 21 | 20 | |
|---|---|---|---|---|---|---|
| 1910 => | 0 | 16 | 0 | 0 | 2 | 1 |
| 100112 <= | 0 | 1 | 0 | 0 | 1 | 1 |
Attention : numéroter les puissances de 2 en partant de la droite !
Cette méthode dite « par soustractions » reste cependant très risquée et surtout très compliquée à programmer. Et en NSI, en aime bien concevoir des programmes puissants en quelques lignes seulement !!!
Voici la méthode dite des “divisions” euclidiennes, très simple à programmer et nettement plus rapide dès qu’il s’agit de traiter des grands nombres.
Démarche :
Exemple :
- 185 = 2 x 92 + 1
- 92 = 2 x 46 + 0
- 46 = 2 x 23 + 0
- 23 = 2 x 11 + 1
- 11 = 2 x 5 + 1
- 5 = 2 x 2 + 1
- 2 = 2 x 1 + 0
- 1 = 2 x 0 + 1
- 0 = 2 x 0 + 0
- 0 = 2 x 0 + 0
Attention : il faut bien lire de bas en haut !
18510 vaut donc 101110012 (vérifions en réalisant la conversion inverse)
@5 De la même manière, convertir en base « 2 » les nombres : 1910 et 2510 . Que se passe-t-il si on prolonge les calculs jusqu’à 8 divisions ?
On constate qu’effectuer plus de divisions ne fait que rajouter des zéro à l’avant du nombre binaire, ce qui, biensur, ne change rien à sa valeur !!!
Avec 1 seul bit (une porte) nous pouvons coder 2 états différents :
Avec 2 bits (une fenêtre + ses volets) nous pouvons coder 4 états :
Ce qui donne :
Avec 3 bits (couleurs primaires RVB) nous pouvons coder 8 états différents :

Voici, ci-dessous, un “arbre-binaire” permettant de représenter les combinaisons de couleurs possible.
@6 Compléter l’arbre “binaire” ci-dessous pour retrouver et ordonner les différentes couleurs “pures” et leur codage binaire associé.
On constate que, pour chaque bit supplémentaire, le nombre de combinaisons possibles est multiplié par 2 :
On en déduit donc que :
Définitions
@7 Déterminer combien de nombres entiers différents peuvent être codés à l’aide de 5 bits puis de 7 bits. Dans chaque situation donner le plus petit nombre et le plus grand nombre entier codable.
@8 Déterminer combien de bits sont necessaires, au minimum, pour coder en binaire les entiers 6210 et 12810 .
@9 Déterminer combien de nombres entiers différents peuvent être codés à l’aide de 12 bits puis de 16 bits. Dans chaque situation donner le plus petit nombre et le plus grand nombre entier codable.
@10 Déterminer combien de bits sont necessaires, au minimum, pour coder en binaire les entiers 100010 et 102410 .
Comme pour une addition de deux nombres décimaux, additioner deux nombres binaires fonctionne avec des retenues. Seulement, ce ne sont pas des retenues de valeur 10, mais de valeur 2.
C’est à dire :
Exemple: additionons 1102 (610) et 11102 (1410)
| 1 | 1 | 1 | |||
|---|---|---|---|---|---|
| 0 | 0 | 1 | 1 | 0 | |
| + | 0 | 1 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 | 0 |
@11 De la même manière, effectuer les additions binaires uivantes :
10110 + 101101110111 + 010001On obtient le résultat 10 1002 (ce qui correspond bien à 2010)
Par extension, multiplier par 2 un nombre a correspond à l’additioner avec lui-même (a+a = 2a)
Nous savons comment additioner deux nombres binaires, nous savons donc comment multiplier par 2 deux nombres binaires.
Exemple : multiplions 1102 (610) par 2
| 1 | 1 | ||||
|---|---|---|---|---|---|
| 0 | 0 | 1 | 1 | 0 | |
| + | 0 | 0 | 1 | 1 | 0 |
| 0 | 1 | 1 | 0 | 0 |
On obtient le résultat 1 1002 (ce qui correspond bien à 1210)
On constate que pultiplier par 2 revient à décaler le nombre binaire vers la gauche pour ajouter un zéro à droite (comme multiplier par 10 en décimal revient à décaler le nombre décimal vers la gauche pour ajouter un zéro à droit)
@12 Effectuer :
@13 Effectuer :
D’une part :
25 = 2 x 12 + 1
12 = 2 x 6 + 0
6 = 2 x 3 + 0
3 = 2 x 1 + 1
1 = 2 x 0 + 1
0 = 2 x 0 + 0
0 = 2 x 0 + 0
0 = 2 x 0 + 0
donc 2510 = 000110012 (= 110012 bien évidement !!!)
D’autre part :
000100112 = 0x27 + 0x26 + 0x25 + 1x24 + 0x23 + 0x22 + 1x21 + 1x20 = 16 + 2 + 1 = 1910
D’une part :
25 = 4 x 6 + 1
6 = 4 x 1 + 2
1 = 4 x 0 + 1
0 = 4 x 0 + 0
donc 2510 = 01214 (= 1214 bien évidement !!!)
D’autre part :
01034 = 00 01 00 112 = 0x43 + 1x42 + 0x41 + 3x40 = 0 + 16 + 0 + 3 = 1910
D’une part :
25 = 8 x 3 + 1
3 = 8 x 0 + 3
0 = 8 x 0 + 0
donc 2510 = 0318 (= 318 bien évidement !!!)
D’autre part :
00 010 0112 = 0x82 + 2x81 + 3x80 = 0 + 16 + 3 = 1910
D’une part :
25 = 16 x 1 + 9
1 = 16 x 0 + 1
donc 2510 = 1916
D’autre part :
0001 00112 = 1x161 + 3x160 = 16 + 3 = 1910
| 1910 | 2510 | |
|---|---|---|
| Base 2 | 00 01 00 112 | 00 01 10 012 |
| Base 4 | 0 1 0 34 | 0 1 2 14 |
| Base 16 | 1 316 | 1 916 |
Dans le système binaire on « construit » les nombres à l’aide de 16 chiffres : 0 ; 1 ; 2 ; 3 ; 4 ; 5 ; 6 ; 7 ; 8 ; 9 ; A ; B ; C ; D ; E ; F.
De manière générale, une base N est composée de N chiffres de 0 à N-1.
La décomposition d’un nombre en base 16 se fait donc de la même manière qu’en base 10 mais, à l’aide de puissances de 16.
Ainsi : 6C516 = 6 x 16² + 12 x 161 + 5 x 160 = 1 73310
Pour convertir un nombre héxadécimal en nombre décimal nous allons utiliser les puissances de 16 comme nous l’avons introduit plus haut :
Exemple :
10A16 = (1 x 162) + (0 x 161) + (10 x 160) = (1 x 256) + (0 x 16) + (10 x 1) = 26610
Pour éviter toute erreur de conversion, nous pouvons utiliser un tableau de conversion
| 162 | 161 | 160 | |
|---|---|---|---|
| 10A16 => | 1 | 0 | 10 |
| 26610 <= | 256 | 0 | 10 |
Attention : numéroter les puissances de 16 en partant de la droite !
La conversion de décimal à héxadécimal nous apparaît donc comme une simple décomposition en puissances de 16.
Imaginons que nous convertissons 1910 en héxadécimal.
Utilisons le tableau de conversion dans l’autre sens :
| 162 | 161 | 160 | |
|---|---|---|---|
| 1910 => | 0 | 16 | 3 |
| 01316 <= | 0 | 1 | 3 |
Attention : numéroter les puissances de 16 en partant de la droite !
Cette méthode dite « par soustractions » reste cependant très risquée et surtout très compliquée à programmer. Et en NSI, en aime bien concevoir des programmes puissants en quelques lignes seulement !!!
Voici la méthode dite des “divisions” euclidiennes, très simple à programmer et nettement plus rapide dès qu’il s’agit de traiter des grands nombres.
Démarche :
Exemple :
1910 = 16 x 1 + 3
1 = 16 x 0 + 1
0 = 16 x 0 + 0
Attention, il faut bien lire de bas en haut !
1910 vaut donc 01316
Exemple :
21310 = 16 x 13 + 5
13 = 16 x 0 + 13
0 = 16 x 0 + 0
0 = 16 x 0 + 0
21310 vaut donc D516
@14 Convertir les nombres décimaux suivants en héxadécimal puis en binaire : 15, 129, 31, 65, 47, 63 et 4080.
Astuce : Avec la pratique et la connaissance des 16 premières correspondances binaire-héxadécimal-décimal, certaines conversions se réalisent de manière automatique en décomposant les octets en quartet (mots de 4 bits).
| Binaire | Héxadécimal | Décimal | Binaire | Héxadécimal | Décimal | |
|---|---|---|---|---|---|---|
| 0000 | 0 | 0 | 1000 | 8 | 8 | |
| 0001 | 1 | 1 | 1001 | 9 | 9 | |
| 0010 | 2 | 2 | 1010 | A | 10 | |
| 0011 | 3 | 3 | 1011 | B | 11 | |
| 0100 | 4 | 4 | 1100 | C | 12 | |
| 0101 | 5 | 5 | 1101 | D | 13 | |
| 0110 | 6 | 6 | 1110 | E | 14 | |
| 0111 | 7 | 7 | 1111 | F | 15 |
Afin de convertir un nombre binaire en héxadécimal, il suffit de se rapporter à ce tableau.
Exemple : 1011 1001 00112 = B9316, car
10112 = B16
10012 = 916
00112 = 316
@15 Convertir les nombres binaires suivants en héxadécimal puis en décimal : 1001 0110, 0111 1111, 0111 1110, 0101 0101 et 1001 0111 1010 1010.
Un ordinateur est uniquement capable de traiter nombres eux-mêmes traduits en nombres binaires…
Mais alors comment sont codés les textes dans un ordinateur ? Ou plus précisément, comment sont codés les caractères dans un ordinateur ?
En réalité, seuls 7 bits sont utilisés = 128 caractères, suffisant pour un texte anglais mais pas pour toutes les langues menant à la création de la norme ISO-8859-1. Mêmes principes que l’ASCII, mais codé sur 8 bits (256 caractères).
Nouveau problème : toutes les langues n’utilisent pas l’alphabet “latin”.
Création de la norme Unicode afin de pouvoir encoder tous les caractères que l’on peut rencontrer dans le monde. Il accepte plusieurs systèmes de codage, le plus utilisé est UTF-8. Il utilise jusqu’à 4 octets
@16 Le caractère « B » a pour code binaire 01000010. A l’aide de la table ASCII, convertir en hexadécimal puis en binaire la phrase suivante : « Bien vu ! »
@17 A l’aide de la table ASCII, convertir, en héxadécimal puis en texte, la séquence de nombres binaires suivante :01000010 01110010 01100001 01110110 01101111 00100000 00100001 00100001 00100001.
@18 En imaginant un système de codage des nombres binaires négatifs à l’aide d’un “bit de signe” (premier bit du mot binaire), donner la représentation “binaire signée sur 8 bits”, des nombres - 3, -10, - 127.
@19 Appliquer ce système à des mots de 3 bits (le premier étant le bit de signe) et représenter tous les entiers relatifs binaires possibles et leur équivalent décimal.
@20 Poser et réaliser les opérations suivantes : 1 + (-3), 3 - 2 et -1 -2.
@21 Lire pages 165/166 du manuel le chapitre 2.1 Les entiers signés, puis, appliquer ce système à des mots de 3 bits (le premier étant le bit de signe) et représenter tous les entiers relatifs binaires possibles et leur équivalent décimal.


@22 Appliquer le système présenté dans le livre à des mots de 3 bits (le premier étant le bit de signe) et représenter tous les entiers relatifs binaires possibles et leur équivalent décimal.
@23 Poser et réaliser les opérations suivantes : 1 + (-3), 3 - 2 et -1 -2.
@24 Lire page 166 du manuel le chapitre 2.2 Additions et soustractions des nombres entiers signés…

@25 A l’aide de deux exemples, vérifier qu’avec le système de complément à 2 on obtient bien x - x = 0, pour tout x entier positif ou négatif.
@26 Déterminer pour des mots de 3, 4, 5, 6, 7 et 8 bits les plus petits nombres et plus grands nombres binaires relatifs représentables.