CODAGE D`UN NOMBRE 1

Transcription

CODAGE D`UN NOMBRE 1
COURS 1
CODAGE D’UN NOMBRE
SYSTEME DE NUMERATION
1. Base d’un système de numération
1.1 Système décimal.
C’est le système de base 10 que nous utilisons tous les jours. Il comprend dix symboles différents :
............................................................................
Exemple du nombre 2356 de ce système : nous l’écrivons N=(2356)10. L’indice 10 indique la base dans
laquelle le nombre est écrit.
Ce nombre N peut être écrit sous la forme suivante :
N = ..................................................................................................................
1.2 Système binaire.
Ce système dit de base 2 comprend ..................................... . Chacun d’eux est aussi appelé bit ( Binary digIT
= BIT ).
Exemple : N= (10110)2 . Ce nombre N peut être écrit sous la forme suivante :
N = (10110)2 = ........................................................................................................
En utilisant n bits, on peut former .................................. et le plus grand d’entre eux ....................... Par
exemple avec un dispositif à .........................................................
...............................................................................................................................................................................
........................
1.3 Système hexadécimal.
Ce système dit de base 16 comprend ...........................................................................
.........................................................................................
Exemple : N= (AC53)16 . Ce nombre N peut être sous la forme suivante :
N = (AC53)16 =...........................................................................................................
.......................................................................................................
1.4 Correspondance entre nombres de différentes bases.
Décimal
0
1
2
3
4
5
6
7
Binaire
Hexadécimal
Décimal
8
9
10
11
12
13
14
15
Binaire
Hexadécimal
2. Changement de base.
2.1 Conversion d’un nombre décimal en un nombre d’une autre base
Méthode : diviser le nombre décimal à convertir par la base b et conserver le reste de la division. Le quotient
obtenu est divisé par b et conserver le reste. Il faut répéter l’opération sur chaque quotient obtenu.
Les restes successifs sont écrits, en commençant par le dernier, de la gauche vers la droite pour former
l’expression de (N)10 dans le système de base b. Cette méthode est dite « Méthode de la division
successives ».
Exemple : Convertir N = (3786)10 en binaire N = (111011001010)2.
SPECIALITE ISN
1
LYCEE JANETTI
CODAGE D’UN NOMBRE
COURS 1
SYSTEME DE NUMERATION
2.2 Conversion d’un nombre hexadécimal en binaire.
Chaque symbole du nombre écrit dans le système hexadécimal est remplacé par son équivalent écrit dans
le système binaire.
Exemple : Convertir N = (ECA)16 = (1110 1100 1010)2.
E C A
2.3 Conversion d’un nombre binaire en hexadécimal.
C’est l’inverse de la précédente. Il faut donc regrouper les 1 et les 0 du nombre par 4 en commençant par
le droite, puis chaque groupe est remplacé par le symbole hexadécimal correspondant.
Exemple : Convertir N = (1 1000 0110 1111)2 = ( 1
8
6
F )16.
0001 1000 0110 1111
3. Les autres systèmes de codage.
3.1 Code gray ou binaire réfléchi.
C’est le système de codage qui, contrairement au code binaire pur est arrangé de manière à ne faire changer
d’état qu’une variable à la fois d’une ligne à l’autre.
Code binaire pur
Code binaire réfléchi
Nombre(10)
23
22
21
20
Nombre(10)
a
b
c
d
0
1
2
3
4
5
6
7
8
9
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
2
3
4
5
6
7
8
9
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
3. Quelques définitions.
3.1 Bit.
Le bit est une unité élémentaire d’information ne pouvant prendre que deux valeurs distinctes ( Notées 0 ou 1
).
3.2 Mot binaire.
En informatique, l’unité de traitement de l’information est le mot binaire.
Nota : - Un ensemble de 4 bits ( Ou Mot de 4 bits ) = ...................... .
- Un ensemble de 8 bits ( Ou mot de 8 bits ) = ...................... .
3.3 Octet.
Un octet est composé de 8 bits :
1101 0101
b7 b6 b5 b4 b3 b2 b1 b0
On distingue :
MSB
LSB
- Le bits de poids fort b7 ( MSB : Most Significant Bit ).
- Le bits de poids faible b0 (LSB : Least Significant Bit).
3.4 Kilo-octet ( Koctet ) :
Un Kilo-octet est composé de 1024 octets ( 210 = 1024 )
SPECIALITE ISN
2
LYCEE JANETTI
COURS 1
CODAGE D’UN NOMBRE
SYSTEME DE NUMERATION
4. Exercices.
a)
b)
c)
d)
e)
f)
g)
Convertir ( 9F2 )16 en binaire.
Convertir ( 001111110101 ) 2 en hexadécimal.
Convertir en décimal les nombres binaires suivants : 10110 ; 10001101 ; 1111010111.
Convertir en binaire les nombres décimaux suivants : 37 ; 189 ; 205 ; 2313.
Convertir en décimal les nombres hexadécimaux suivants : 92 ; 2C0 ; 37FD.
Convertir en hexadécimal les nombres décimaux suivants : 75 ; 314 ; 25619.
Ecrire un programme permettant de convertir un nombre décimal en un nombre binaire.
SPECIALITE ISN
3
LYCEE JANETTI
COURS 1
CODAGE D’UN NOMBRE
SYSTEME DE NUMERATION
5. Représentation des nombres relatifs
5.1 Le binaire signé : Représentation des nombres positifs et négatif.
Nous avons vu que le codage des entiers naturels par une série de bits se fait simplement en prenant
l'écriture binaire... quid des entiers négatifs ? La plus élémentaire, jamais utilisée en pratique, consiste à
utiliser l'un des bits (le premier) pour représenter le signe. Si l'on prend l'exemple d'un octet, on a alors un
bit de signe et sept bits pour coder la valeur absolue (un nombre indépendamment de son signe).
Exemple : Sur 8 bits on peut représenter des nombres signés de -127 à +127.
Lorsque le bit le plus à gauche est un 0, le nombre est ...................... .
0 1 1 1 1 1 1 1
Ici le résultat est +127 comme en binaire pur.
Lorsque le bit le plus à gauche est un 1, le nombre est ...................... .
1 1 1 1 1 1 1 1
Ici le résultat est -128.
L’inconvénient c’est que le zéro a deux représentations…………………et ……………….
C'est pour remédier à ces problèmes que l'on utilise la notation en complément à deux. Les nombres
positifs sont représentés comme attendu, en revanche les nombres négatifs sont obtenus de la manière
suivante :
 On inverse les bits de l'écriture binaire de sa valeur absolue (opération binaire NON), on fait ce
qu'on appelle le complément à un,
 On ajoute 1 au résultat (les dépassements sont ignorés).
Cette opération correspond au calcul de 2n−|x|, où
est la longueur de la représentation et |x| la valeur
absolue du nombre à coder. Ainsi −1 s'écrit comme 256-1=255=111111112, pour les nombres sur 8 bits.
Ceci est à l'origine du nom de cette opération : "complément à 2 puissance n", quasi-systématiquement
tronqué en "complément à 2".
La même opération effectuée sur un nombre négatif donne le nombre positif de départ: 2n − (2n−x) = x.
Pour coder (−4) :
 On prend le nombre positif 4 :00000100
 On inverse les bits : 11111011
 On ajoute 1 : 11111100
Le bit de signe est automatiquement mis à 1 par l'opération d'inversion. On peut vérifier que cette fois
l'opération 3 + (−4) se fait sans erreur :
00000011 + 11111100 = 11111111
Le complément à deux de 11111111 est 00000001 soit 1 en décimal, donc 11111111 = (−1) en décimal.
Le résultat de l'addition usuelle de nombres représentés en complément à deux est le codage en
complément à deux du résultat de l'addition des nombres. Ainsi les calculs peuvent s'enchaîner
naturellement.
Plus généralement, avec des mots de n bits, on écrit les entiers relatifs compris entre -2n-1 et 2n-1-1:
• un entier relatif x positif ou nul compris entre 0 et 2n-1-1 est représenté par l’entier naturel x
compris entre 0 et 2n-1-1 ;
• un entier relatif x strictement négatif compris entre – 2n-1et – 1 est représenté par l’entier naturel
x +2n compris entre 2n-1et 2n - 1.
SPECIALITE ISN
4
LYCEE JANETTI
CODAGE D’UN NOMBRE
COURS 1
SYSTEME DE NUMERATION
6. Représentation des nombres à virgule
6.1 Ils existent deux formats de représentations des nombres à virgule :
6.1.1 Format virgule fixe
Utilise par les premières machines, possède une partie ‘entière’ et une partie ‘décimale’ séparés par une
virgule. La position de la virgule est fixe d’ou le nom.

Exemple : 54,25(10) ; 10,001(2) ; A1,F0B(16)
6.1.2 Format virgule flottante (utilise actuellement sur machine)
e
Défini par : ± m . b
 un signe + ou –
 une mantisse m (en virgule fixe)
 un exposant e (un entier relative)
 une base b (2,8,10,16,…)
6.2 Format à virgule fixe
Etant donne une base b, un nombre x est représenté, en format virgule fixe, par :
x = an-1 an-2 an-3 an-4…..a1 a0 , a-1 a-2…a-p (b)




an-1 est le chiffre de poids fort (MSB)
a-p est le chiffre de poids faible (LSB)
n est le nombre de chiffre avant la virgule
p est le nombre de chiffre après la virgule
Changement de base 2 vers base 10

La valeur de x en base 10 est :

Exemple :
=∑
(10)
101,01(2) =1.22+0.21+1.20+0.2-1+1.2-2 = 5,25(10)
Changement de base 10 vers base 2
Le passage de la base 10 a la base 2 est défini par :
 Partie entière est codée sur p bits (division successive par 2)
 Partie décimale est codée sur q bits en multipliant par 2 successivement jusqu’a ce que la partie
décimale soit nulle ou le nombre de bits q est atteint.
Exemple : 4,25(10) = ? (2) format virgule fixe
4(10) = 100(2)
0,25 = ¼ représente 2-2
donc 4,25(10) = 100,01(2)
Exercice : Coder 7,875(10) et 5,3(10) avec p = 8 et q = 8
SPECIALITE ISN
5
LYCEE JANETTI
COURS 1
CODAGE D’UN NOMBRE
SYSTEME DE NUMERATION
6.3 Format à virgule flottante :
Normalisation
x= ± 1,M . 2Eb
Le signe est code sur 1 bit ayant le poids fort :
 Le signe – : bit 1
 Le signe + : bit 0
Exposant biaisé (Eb)
 Place avant la mantisse pour simplifier la comparaison
 Code sur p bits et biaise pour etre positif (ajout de 2p-1-1)
ex : 228 EB= 28+128 si p=8bits/2-82 EB= -82+128 si p=8bits
Mantisse normalise(M)
 Normalise : virgule est place apres le bit a 1 ayant le poids fort
 M est code sur q bits exemple 11,01 on écrit 1,101.2-1 donc M =101
1 bit de signe de M
P bits pour Exposant Biaisé
Q bits pour M
Représentation dans la norme IEEE(norme actuelle dans les ordinateurs)
Simple précision sur 32 bits :
1 bit de signe de la mantisse
8 bits pour l’exposant
23 bits pour la mantisse
1 bit de
signe de M
8 bits pour
Exposant Biaisé
23 bits
pour M
Double précisions sur 64 bits :
1 bit de signe de la mantisse
11 bits pour l’exposant
52 bits pour la mantisse
1 bit de
signe de M
11 bits pour
Exposant Biaisé
52 bits
pour M
7. Exercices.
1) Quels entiers relatifs peut-on représenter avec des mots de 8 bits ? Combien sont-ils ? Même question
avec des mots de 32 bits et 64 bits.
2) Trouver la représentation décimale des entiers relatifs dont la représentation binaire sur huit bits est
0111 1111 et 1000 0001.
3) Calculer la représentation binaire sur huit bits de l’entier relatif 4, puis celle de son opposé. Faire la
même chose pour -16.
4) Additionner en binaire les nombres décimaux suivants : 16+23, 120+32.
5) Maintenant sur 8 bits faire l’addition de 23+45, 128+150.
6) Soustraire en sur 8 bits 34-45, 120-128
7) Trouver le nombre à virgule représenté par le mot
1100010001101001001111000011100000000000000000000000000000000000
8) Trouver le nombre à virgule représenté par le mot :
0001000000111101001110010101100000000000000000000000000000000000
9) Représenter les nombres décimaux suivants en binaire en utilisant le format à virgule fixe et à virgule
flottante sur 32 bits : 1,5 ; -1,5 ; 132,875 ; 13245,45
SPECIALITE ISN
6
LYCEE JANETTI