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 :

  1. choisir UNE notion différente par élève au sein de chaque équipe,
  2. se préparer à réaliser, en 5 minutes maximum, sur 1/3 du tableau blanc, un croquis accompagné de mots clés et du titre de la notion abordée pour soutenir la présentation orale,
  3. se préparer à présenter, SANS notes, sa notion en 1,5 minutes maximum.

TYPES DE BASE

There are 10 types of people in the world …

0 - Découverte des bases numériques

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.

Correction

À 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 :

1 - Le système décimal (base 10)

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 :

Correction :

2 - Le système binaire (base 2)

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

Correction :

Définitions :

2.1 Conversion binaire vers décimal

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.

Correction :

2.2 Conversion décimal vers binaire

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 :

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 ?

Correction :

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 !!!

2.3 Nombre de bits nécessaires à un entier

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 :







hierarchy



°

°



Ouverte

Ouverte



°->Ouverte





Fermée

Fermée



°->Fermée





OuverteOuvert

OuverteOuvert



Ouverte->OuverteOuvert





OuverteFermé

OuverteFermé



Ouverte->OuverteFermé





FerméeOuvert

FerméeOuvert



Fermée->FerméeOuvert





FerméeFermé

FerméeFermé



Fermée->FerméeFermé





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.







hierarchy



°

°



R

R



°->R





r

r



°->r





RV

RV



R->RV





________

________



R->________





rV

rV



r->rV





rv

rv



r->rv





_____

_____



RV->_____





RVb

RVb



RV->RVb





RvB

RvB



________->RvB





Rvb

Rvb



________->Rvb





rVB

rVB



rV->rVB





______

______



rV->______





rvB

rvB



rv->rvB





rvb

rvb



rv->rvb





Blanc

Blanc



_____->Blanc





_

_



RVb->_





Cyan

Cyan



rVB->Cyan





Vert

Vert



______->Vert





Magenta

Magenta



RvB->Magenta





__

__



Rvb->__





___

___



rvB->___





____

____



rvb->____





@6 Compléter l’arbre “binaire” ci-dessous pour retrouver et ordonner les différentes couleurs “pures” et leur codage binaire associé.

Correction :






hierarchy



°

°



R

R



°->R





r

r



°->r





RV

RV



R->RV





Rv

Rv



R->Rv





rV

rV



r->rV





rv

rv



r->rv





RVB

RVB



RV->RVB





RVb

RVb



RV->RVb





RvB

RvB



Rv->RvB





Rvb

Rvb



Rv->Rvb





rVB

rVB



rV->rVB





rVb

rVb



rV->rVb





rvB

rvB



rv->rvB





rvb

rvb



rv->rvb





Blanc

Blanc



RVB->Blanc





Jaune

Jaune



RVb->Jaune





Cyan

Cyan



rVB->Cyan





Vert

Vert



rVb->Vert





Magenta

Magenta



RvB->Magenta





Rouge

Rouge



Rvb->Rouge





Bleu

Bleu



rvB->Bleu





Noir

Noir



rvb->Noir





  • Noir = 0002
  • Bleu = 0012
  • Vert = 0102
  • Cyan = 0112
  • Rouge = 1002
  • Magenta = 1012
  • Jaune = 1102
  • Blanc = 1112

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.

Réponses :

@8 Déterminer combien de bits sont necessaires, au minimum, pour coder en binaire les entiers 6210 et 12810 .

Réponses :

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

Réponses :
  • Avec 12 bits on peut coder 212 = 4096 nombres entiers différents, de 0 à 4095.
  • Avec 16 bits on peut coder 216 = 65536 nombres entiers différents, de 0 à 65535.

@10 Déterminer combien de bits sont necessaires, au minimum, pour coder en binaire les entiers 100010 et 102410 .

Réponses :

2.4 Additionner deux nombres entiers binaires entre eux.

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 :

Résultats :

On 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 :

Résultats :

@13 Effectuer :

Résultats :

2.5 Lien entre les bases 2, 4, 8, 16 …

2.5.1 Quelques rappels des conversion base 10 / base 2

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

2.5.2 Application aux conversions base 10 / base 4

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

2.5.3 Application aux conversions base 10 / base 8

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

2.5.4 Application aux conversions base 10 / base 16

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

2.5.5 Comparaison entre base 2, 4 et 16

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

3 - Le système héxadécimal (base 16)

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

3.1 Conversion héxadécimal vers décimal

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 !

3.2 Conversion décimal vers héxadécimal

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.

Réponses :

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.

Réponses :

4 - Représentation du texte en machine

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 ?

@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 ! »

Réponse :


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

Réponse :

5 - Nombres relatifs en binaire

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

Pages du manuel :



@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

Page du manuel :


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