Vous êtes sur la page 1sur 12

Numération et codage_nsi_premiere_2019.

doc
Chap 1 : LA NUMERATION ET LE CODAGE.
I) LA NUMÉRATION AU COURS DES TEMPS.
Vus de l'extérieur, les ordinateurs et les programmes que nous utilisons tous les jours permettent de
mémoriser, de transmettre et de transformer des nombres, des textes, des images, des sons, ...
Pourtant, quand on les observe à une plus petite échelle, ces ordinateurs ne manipulent
uniquement des objets beaucoup plus simples : des 0 et des 1.
Mémoriser, transmettre et transformer des nombres, des textes, des images ou des sons
demande donc d'abord de les représenter (coder) comme des suites de 0 et de 1.

Quelques mots importants :


 Bit : plus petit élément d’information numérique (pouvant être reconnu par les ordinateurs).
 Mot : ensemble de bits ordonnés, c’est une représentation formatée de l’information ; les
ordinateurs utilisent des mots de 8, 16, 32, 64 bits.
 LSB : bit le moins significatif (Least Significant Bit), bit de poids faible
 MSB : bit le plus significatif (Most Significant Bit), bit de poids fort

II) LES SYSTÈMES DÉCIMAL ET BINAIRE.


1) Le système décimal.

Soit le nombre 3189. En réalisant des divisions successives par 10, on obtient:
3189(10) = 9 + 8 x 10 + 1 x 100 + 3 x 1000

2) Du code décimal (base 10) au code binaire (base 2).

En base 10, il n’y que 10 chiffres disponibles : 0, En base 2, il n’y que 2 chiffres disponibles : 0 et
1,2,3,…,9. Exemple : 12579430 1. Exemple : 0111010101

3) Décomposition d’un nombre binaire ?

0111010101 = 1 X 20 + 0 X 21 + 1 X 22 + 0 X 23 + 1 X 24 + 0 X 25 + 1 X 26 + 1 X 27 + 1 X 28 + 0 X 29

4) Comment convertir un nombre binaire en décimal ?

(0111010101)(2) = 1 x20 + 0 x 21 + 1 x 22 + 0 x 23 + 1 x 24 + 0 x 25 + 1 x 26 + 1 x 27 + 1 x 28 + 0 x 29
(0111010101)(2) = 1 + 0 + 1 x 4 + 0 +1 x 16 +0 + 1 x 64 + 1 x 128 + 1 x 256
(0111010101)(2) = (469)(10)

5) Comment convertir un nombre décimal en binaire ?


On veut écrire le nombre 13(10) en base 2. On divise successivement par 2, et on obtient :

1
-NSI - Première - Année 2019-2020 – Page 1 -
Numération et codage_nsi_premiere_2019.doc
Activité 1 : Ecrire (35)(10) et (135)(10) en binaire.

Puis compléter le tableau suivant ; écrire le nombre binaire sur un octet.

Nombre décimal 23 2² 21 20 Nombre binaire


0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

6) Remarques :
Avec un bit on peut représenter 21 = 2 états différents: 0 1
Avec 2 bits on peut représenter 22 = 4 états différents : 00 01 10 11
Avec 3 bits on peut représenter 23 = 8 états différents : 000 001 010 011 100 101 110 111
Avec 8 bits (1 octet ) on peut représenter 28 = 256 états différents ( le plus petit est 0, le plus grand 255 soit
256 états différents).

Activité 2 : Les multiples : A compléter.

1 kilo-octet ( Ko ) vaut 210 octets = ----------- octets (noter la différence avec le kilo utilisé en physique)

1 méga-octet ( Mo ) vaut 210 Ko = ------------ Ko = 220 octets = -------------------- octets

III) OPÉRATIONS NUMÉRIQUES EN BASE 2


1) Introduction.
Le microprocesseur est l'organe essentiel de l'ordinateur, il exécute les instructions contenues dans les
programmes. Une partie de son travail consiste à réaliser des opérations sur des nombres, mais ces
nombres sont codés en binaire car l'électronique ne gère que deux états : l'état haut "1" et l'état bas "0".

2) L'addition.
L'addition en binaire s'exécute comme en décimal, on ajoute un par un tous les bits en tenant compte des
éventuelles retenues.
Additionnons par exemple les nombres 11000101 et 00101101 avec vérification dans la base 10 :

11000101 197
00101101 45

( 1 1 1 1 0 0 1 0 )2 ( 242 )10

Faire l'exercice 6
3) La multiplication.

2
-NSI - Première - Année 2019-2020 – Page 2 -
Numération et codage_nsi_premiere_2019.doc
La multiplication en binaire s'exécute comme en décimal, c'est à dire avec des additions à décalages
successifs.
Prenons un exemple avec la multiplication des nombres 1111 et 1011 c'est à dire 15 et 11 en base 10 :
1111
1011
1111
11110
000000
1111000
Résultat : ( 1 0 1 0 0 1 0 1 )2 = ( 165 )10

Faire l'exercice 7

IV LE SYSTÈME HEXADÉCIMAL.
1) Qu’est-ce que le système hexadécimal ?

Regrouper les bits en octets ( 8 bits ), coder l’information en mots de plusieurs octets, est une tâche lourde
et rapidement fastidieuse. Le système hexadécimal (16 bits) permet de réduire la longueur des mots et
facilite leur manipulation.
Ce système comporte 16 symboles, les 10 chiffres du système décimal (0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ) et les
6 premières lettres de l’alphabet en majuscules (A = 10,B = 11,C = 12 ,D = 13,E = 14 ,F = 15).
L’ordinateur comprend et utilise le code hexadécimal.

Activité 3 : Tableau de correspondance entre les systèmes (à compléter) :

2) Conversions hexadécimal / décimal.


a) Passer du code hexadécimal (base 16) au code décimal (base 10) :
(B35A)(16) = A x 160 + 5 x 161 + 3 x 162 + B x 163
(B35A)(16)= 10 x1 + 5 x 16 + 3 x 256 + 11 x 4096 = (45914)(10)

Activité 4 : Ecrire (2A3)(16) puis(1AD7)(16)et (379)(16) en code décimal.

b) Passer du code décimal (base 10) au code hexadécimal (base 16)


On veut écrire le nombre 63650(10) en base 16. En divisant successivement par 16, on obtient :

Activité 5 : Ecrire les nombres 87 ( 10 ) et 128(10) en code hexadécimal.

3) Conversions hexadécimal / binaire.


3
-NSI - Première - Année 2019-2020 – Page 3 -
Numération et codage_nsi_premiere_2019.doc
a) Du code binaire (base 2) au code hexadécimal ( base 16 ).

b) Du code hexadécimal (base 16) au code binaire (base 2).

Activité 9 : Convertir en binaire les nombres décimaux 397, 133, 110 puis en décimal les nombres
binaires101, 0101, 1101110et vérifier en convertissant pour revenir à la base d‘origine.
Activité 10 : Convertir en hexadécimal les nombres décimaux a) 3167 b) 219 c) 6560
Activité 11 : Convertir en décimal les nombres hexadécimaux a) 3AE b) FFF c) 6AF
Activité 12 : Convertir en base 16 a) 12810 b) 10110 c) 25610 d) 10010112
Activité 13 : Convertir en base 10 a) C20 b) A2E
Activité 14 : Convertir en base 2 a) F0A b) C01

Activité 15 : Effectuer les opérations suivantes et vérifier les résultats en procédant aux conversions
nécessaires.
a) 1100 + 1000 b) 1001 + 1011

En déduire une méthode permettant de faire la somme de Deux nombres binaires sans conversion
intermédiaire. Faire la vérification = en refaisant les questions a et b par cette seconde méthode.

c) Réaliser les opérations suivantes et vérifier les résultats en procédant aux conversions nécessaires.
a) 1011 x 11 b) 1100 x 101 c) 100111 x 0110

En déduire une méthode permettant de faire le produit de Deux nombres binaires sans conversion
intermédiaire. Faire la vérification en refaisant les questions a et b par cette seconde méthode.

V) REPRÉSENTATION DES NOMBRES ENTIERS NÉGATIFS.


1) Solution 1 :
Une représentation naïve pourrait utiliser le bit de poids fort comme marqueur du signe, les autres bits
donnant une valeur absolue :
Le bit réservé au signe est toujours le bit le plus à gauche.
Par convention, le 0 représente le + et le 1 le -.

00000010 = +2 en décimal

4
-NSI - Première - Année 2019-2020 – Page 4 -
Numération et codage_nsi_premiere_2019.doc
10000010 = −2 en décimal

Cette représentation possède deux inconvénients. Le premier (mineur) est que le nombre zéro (0) possède
deux représentations : 00000000 et 10000000 sont respectivement égaux à +0 et −0. L'autre inconvénient
(majeur) est que cette représentation impose de modifier l'algorithme d'addition ; si un des nombres est
négatif, l'addition binaire usuelle donne un résultat incorrect. Ainsi :

00000011 + 10000100 = 10000111


Soit 3 + (−4) = (−7) au lieu de (−1)

C'est pour remédier à ces problèmes que l'on utilise la notation en complément à deux (CA2)

2) Solution 2 : La notation en code complément à deux.


Les nombres positifs sont représentés comme précédemment, en revanche les nombres négatifs sont
obtenus de la manière suivante :

1. On inverse les bits de l'écriture binaire de sa valeur absolue (opération binaire NON) (voir cours
opérateurs logiques), on fait alors ce qu'on appelle le complément à un,

2. On ajoute 1 au résultat (les dépassements sont ignorés). C’est le complément à 2.

Exemple : Pour coder (−4) sur 8 bits :


On prend le nombre positif 4 : 00000100
On inverse les bits : 11111011
On ajoute 1 à 11111011 soit : 11111100

On peut vérifier que l'opération 3 + (−4) = -1 en décimal se fait sans erreur : (Ce qui n’est pas le cas
avec la première représentation).

Le code complètement à 2 de -1 est : 00000001 complémenté soit 11111110 auquel il faut ajouter 1 donc :
11111111 Donc (11111111) en code complément à 2 = (−1) en décimal et l’opération est donc juste.

Complément à 1 d’un nombre binaire :


Pour calculer le complément à 1 (CA1) d’un nombre binaire, il suffit de complémenter chaque bit de ce
nombre, c'est-à-dire de remplacer les 1 par des 0 et les 0 par des 1.

CA1 de (01110110) 2 = 10001001

Complément à 2 d’un nombre binaire :


Pour calculer le CA2 d’un nombre binaire N, on ajoute la valeur 1 au CA1 de N. (CA2 = CA1 + 1)

Exemple 1 :
Nombre binaire
N = 0101
Complément à 1 de N = 1010
Complément à 2 de N = 1011

Exemple 2 :
Nombre binaire
5
-NSI - Première - Année 2019-2020 – Page 5 -
Numération et codage_nsi_premiere_2019.doc
N = 11100011
Complément à 1 de N =
Complément à 2 de N =

Exemple de l’addition en binaire sur des entiers signés en CA2 : réalisez les additions suivantes en binaire
sur 8 bits:

Exemple 1 :
(-58)10 + (98)10

Exemple 2 :
(-32)10 + (-57)10

Exemple 3 :
(118)10 + (-93)10

Exemple 4 :
(-89)10 + (-62)10
Remarque : Nous venons de constater sur les exemples précédents, qu’une soustraction en CA2 revient à
faire une addition. Pratiquement toutes les unités arithmétiques des microprocesseurs réalisent des
soustractions sur le principe suivant :

A – B = A + (CA2 de B)

VI) REPRÉSENTATION DES NOMBRES À VIRGULE.


1) Méthode 1.
On peut représenter les nombres à virgule en binaire de la même façon qu’en base 10.
Exemple :
En base 10 : 123,05 s’écrit

Autre exemple : en base 2, le nombre 6.25 s’écrit 110,01

Activité 16 : Donner le mot binaire correspondant à 33,75(10)

Cette technique n’est pas optimale en base 2. On utilise donc une autre représentation

2) Méthode 2 : Exemple pour un nombre codé sur 32 bits (norme IEEE)

Avec :
6
-NSI - Première - Année 2019-2020 – Page 6 -
Numération et codage_nsi_premiere_2019.doc
 S est le bit de signe et l'on comprend alors pourquoi 0 est positif ( -10=1).
 E est l'exposant auquel on doit bien ajouter 127 pour obtenir son équivalent codé. Les exposants
peuvent ainsi aller de -254 à 255.
 F est la partie fractionnaire, la seule que l'on exprime et qui est ajoutée à 1 pour effectuer le calcul.

Exemple 1: codage de 525.5


 525,5 est positif donc le 1er bit sera 0.
 Sa représentation en base 2 est la suivante :

 En normalisant, on trouve : 1,0000011011*9 9 car le bit le plus fort est 29


 On ajoute 127 à l'exposant qui vaut 9 ce qui donne 136, soit en base 2 : 10001000
 La mantisse est composée de la partie décimale de 525,5 en base 2 normalisée, c'est-à-dire
0000011011.
 Comme la mantisse doit occuper 23 bits, il est nécessaire d'ajouter des zéros pour la compléter :
00000110110000000000000
 La représentation du nombre 525,5 en binaire avec la norme IEEE est donc :

0 10001000 00000110110000000000000 = (4403600)(16)

Exemple 2 : codage de -0,625.


 Le bit s vaut 1 car -0,625 est négatif
 0,625 s'écrit en base 2 de la façon suivante : 0,101
 On souhaite l'écrire sous la forme 1.01x 2-1car le bit le plus fort est 2-1

 Par conséquent l'exposant vaut 1111110 car 127 - 1 = 126 (soit 1111110 en binaire)
 La mantisse est 01000000000000000000000 (seuls les chiffres après la virgule sont représentés, le
nombre entier étant toujours égal à 1)
 La représentation du nombre 0,625 en binaire avec la norme IEEE est donc :
1 1111 1110 01000000000000000000000 = (FF 20 00 00) (16)

VII) LE CODAGE DES CARACTÈRES ALPHANUMÉRIQUES.


1) Le code ASCII.

Pour représenter les caractères, on attribue à chaque caractère un nombre. L’un des codes les plus utilisé
est le code ASCII. Dans ce code, chaque caractère est codé sur 7 bits. Le huitième bit (MSB) est un bit de
contrôle (bit de parité) qui sert à vérifier que l’information transmise est correcte. On peut coder avec ce
code 27 caractères soit 128 caractères.

Exemple : A est codé 65 (10) ou 01000001 (2) ou 41 (16)

7
-NSI - Première - Année 2019-2020 – Page 7 -
Numération et codage_nsi_premiere_2019.doc

Activité 17: Donner le code hexadécimal correspondant à « LETTRE »

Activité 18 : Taper la phrase suivante dans un éditeur de texte « Les carottes sont cuites ». Enregistrer le
fichier au format txt.(codage ASCII ou ANSI ) et déterminer la taille du fichier en octets.
Cela vous semble t’il logique ? Pourquoi ?
Taper la même phrase dans un logiciel de traitement de texte (word, openoffice par exemple) Le fichier
obtenu a-t-il la même taille ? Expliquer d’où provient la différence. Rouvrir le deuxième fichier (fait avec le
traitement de texte) avec le même éditeur de texte. Le fichier correspond il au premier ?

Activité 19 : A l’aide de la table ASCII coder la phrase suivante en Hexadécimal puis en binaire : « Demain
il fera beau »

Activité 20 : Trouver la phrase qui est codée ci-dessous (en Hexa)


41 6c 6c 65 72 2c 20 70 6c 75 73 20 76 69 74 65

2) Code ASCII étendu.


Le code ASCII simple permet donc de coder uniquement 128 caractères. Dans le code ASCII étendu le
8ème bit est utilisé pour le codage et non plus en bit de contrôle.

Activité 21 : Déterminer combien de caractères peut on coder avec ce nouveau code ?


Cela est il suffisant ?

3) Choix d’une norme délicate.


Tous les caractères ne sont pas « codables » même en ASCII étendu. Il existe donc beaucoup d’autres
normes développées par de nombreux utilisateurs.
-norme ISO8859 (qui comprend 16 parties et notamment ISO 8859-1 aussi appelée Latin -1)
- Norme Windows-1252 (ou ANSI)
- etc ...
Cela entraine une grande confusion pour les développeurs. La globalisation des échanges et de l’utilisation
d’internet nécessite une prise en charge d’un nombre de caractères de plus en plus grand.
8
-NSI - Première - Année 2019-2020 – Page 8 -
Numération et codage_nsi_premiere_2019.doc

9
-NSI - Première - Année 2019-2020 – Page 9 -
Numération et codage_nsi_premiere_2019.doc

4) L'Unicode.
Le système UNICODE a donc été crée pour permettre le codage des textes écrits quelque soit le système
d’écriture utilisé (norme utilisée). C’est une table de correspondance (ou table d’encodage) caractère –
code. Le plus répandu est UTF-8. C’est celui qui est utilisé par défaut pour l’affichage des pages web.

Remarque : Quelques règles pour UTF-8 L’encodage UTF-8 utilise 1, 2, 3 ou 4 octets en respectant
certaines règles : Un texte en ASCII de base (appelé aussi US-ASCII) est codé de manière identique en
UTF-8. On utilise un octet commençant par un bit 0 à gauche (bit de poids fort). Les points de code de
valeur scalaire supérieure à 127 sont codés sur plusieurs octets. Les bits de poids fort du premier octet
forment une suite de 1 de longueur égale au nombre d'octets utilisés pour coder le caractère, les octets
suivants ayant 10 comme bits de poids fort.

10
-NSI - Première - Année 2019-2020 – Page 10 -
Numération et codage_nsi_premiere_2019.doc

Activité 22 : Ouvrir la page : https://wiki.inria.fr/sciencinfolycee/Convertisseur_texte/binaire/hexa_en_ligne


Afficher le code source de la page, et repérez dans les meta données (en tête de la page) le système
unicode utilisé.

Activité 23 : Ouvrir un explorateur internet et aller sur http://lyc-presles.entauvergne.fr/default.aspx


Afficher le code source de la page et rechercher dans le code l’information correspondant à l’encodage.

Activité 24 : Connecter vous à l’adresse suivante :


https://wiki.inria.fr/sciencinfolycee/Convertisseur_texte/binaire/hexa_en_ligne
Ou http://www.roubaixinteractive.com/PlayGround/Binary_Conversion/Binary_To_Text.asp
Ouhttp://www.supportduweb.com/convertisseur-textes-binaire-code-ascii-numerique-ordinateur-secret-
encoder-text-binary-chiffrer.html

Voici le code binaire d’un texte :


01000010 01110010 01100001 01110110 01101111 00101100 00100000 01110100 01110101 00100000 01100001
01110011 00100000 01110000 01110010 01100101 01110011 01110001 01110101 01100101 00100000 01110100
01101111 01110101 01110100 00100000 01110100 01110010 01101111 01110101 01110110 11101001 00101110
00101110 00101110

1) À l’aide du logiciel fourni sur le site, retrouver le texte contenu dans le code.
2) Ce logiciel est-il compatible avec les normes : (justifier la réponse) ISO 8859-1(ou latin -1), ISO 8859-15
Windows 1252 ?
3) Trouver une astuce pour savoir laquelle des trois est utilisée !

Activité 25 : - Coder en UTF-8


Le symbole € correspond à la valeur décimale 8364.
1) Convertir cette valeur en binaire.
2) Combien d’octets (1 octet correspond à 8 bits) doit-on utiliser en UTF-8 pour coder ce nombre
convenablement (les moitiés d’octet sont interdites) ?
3) Donner le codage UTF-8 correspondant.
Liens utiles:
http://www.dcode.fr/conversion-base-n
http://fr.wikipedia.org/wiki/ISO_8859-1
http://fr.wikipedia.org/wiki/Windows-1252
http://fr.wikipedia.org/wiki/ISO_8859-15
https://wiki.inria.fr/sciencinfolycee/Convertisseur_texte/binaire/hexa_en_ligne
http://fr.wikipedia.org/wiki/Unicode
11
-NSI - Première - Année 2019-2020 – Page 11 -
Numération et codage_nsi_premiere_2019.doc
http://recode.progiciels-bpi.ca/index.html

12
-NSI - Première - Année 2019-2020 – Page 12 -

Vous aimerez peut-être aussi