Codage et Représentation de l’Information Tronc commun Mathématiques et Informatique (MI) Dr. M. Yassine HAOUAM Université Larbi Tébessi Année universitaire 2017-2018
Le site du cours http://www.univ-tebessa.dz/
Codification et Représentation des Nombres Chapitre 1
Plan du chapitre Les systèmes de numération Décimal (Base 10) Binaire (Base 2) Octal (Base 8) Hexadécimal (Base 16) Les conversions entre ces systèmes Représentation des nombres signés (négatifs) Signe et valeur absolue (SVA) Complément à 1 (Cà1) Complément à 2 (Cà2) Représentation des nombres réels Représentation IEEE 754 Code BCD
Les systèmes de numération Introduction le système décimal : est le système utilisé pour représenter les nombres. Mais, il est possible d'utiliser d'autres systèmes de numération (systèmes binaire, octal, et hexadécimal).
Quelques définitions DIGIT: Contraction de "digital unit" unité digitale. Un digit est un élément d'information numérique de base quelconque. Exemple: Les nombres (1644)10 et (A84F)16 sont constitués chacun de 4 digits. POIDS D'UN DIGIT: La valeur de chaque digit dépend de sa position. A chaque rang (position), est affecté un poids.
Octet: Un octet est un mot de 8 bits BIT: Contraction de "binary digit" digit binaire. Un bit ne peut prendre que deux états 0 ou 1. Exemple: le nombre binaire 10100101 est constitué de 8 bits. Nombre: Un nombre (mot) est la concaténation de plusieurs digits ou bits. Exemple: 256, 101, 2F4B. Octet: Un octet est un mot de 8 bits Exemple: 1011 0110
BASE: Un nombre est écrit en base B, chacun de ses digits peut être écrit avec B symboles différents. Exemples: En base 10 [10 symboles]: 0 1 2 3 4 5 6 7 8 9. En base 16 [16 symboles]: 0 1 2 3 4 5 6 7 8 9 A B C D E F. CAPACITE DE COMPTAGE: Avec N digits écrits en base B, on peut compter de 0 a BN -1, soit BN nombres différents. Exemple: avec un nombre de 3 digits en base 10, on peut compter de 0 a 999 (1000 nombres)
Décomposition d'un nombre De façon générale, un nombre N quelconque peut être représenté dans un système de numération en base B sous l'une des deux formes suivantes: La virgule sépare la partie entière de la partie fractionnaire bi est le chiffre de poids i tel que 0 =< bi <= (B - 1) Base
Exemples 1x101 + 5x100 + 7x10-1 + 3x10-2 2x82 + 6x81 + 3x80 + 2x8-1 Représentation du nombre décimal 15,73 (B =10) 1x101 + 5x100 + 7x10-1 + 3x10-2 Représentation du nombre octal 263,2 (B =8) 2x82 + 6x81 + 3x80 + 2x8-1
Le système de numération Décimal Le système décimal est composé de 10 chiffres: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Exemple: le nombre décimal 256 Le digit 6, situé au premier rang a partir de la droite a une valeur de 6 (poids:0) Le digit 5 , situé au deuxième rang a une valeur de 50 (poids:1). Le digit 2 , situe au troisième rang a une valeur de 200 (poids:2).
Le chiffre de droite le chiffre le moins significatif (a poids faible), en anglais Least Significant Bit (LSB), celui de gauche le chiffre le plus signicatif (a poids fort), en anglais Most Significant Bit (MSB) .
Système binaire Base : 2 Chiffres binaires : 0, 1 Exemple: (1101,01)2 nous pouvons écrire :
Système octal Base :8 Chiffres octaux : 0, 1, 2, 3, 4, 5, 6, 7 Exemple: ( 235,7)8 nous pouvons écrire :
Système hexadécimal Base : 16 Chiffres hexadecimaux : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F A 10, B11, C 12, D13, E14, F 15. Exemple: (1A2C,F)16 nous pouvons écrire :
Conversion décimal binaire (19)10 = (………)2 ? (19)10 = (10011)2
Conversion binairedécimal (1101)2 = (…..)10
Conversion décimal octal / hexadécimal même méthode (division /8 système octal) Division /16 (système héxadécimal) Exemples:
Conversion octal / hexadécimaldécimal Même méthode binaire décimal (B=8 / B=16) Exemples:
Conversions binaire octal On divise le nombre binaire en tranches de 3 bits (a partir du LSB). Chacun des groupes est ensuite converti en un digit octal. Exemple:
Conversions octal binaire Consiste a associer a chaque digit du nombre octal son équivalent binaire sur 3 bits. Exemple:
Conversions binairehexadécimal consiste a diviser le nombre binaire en tranches de 4 bits (a partir du LSB). Chacun des groupes est ensuite converti en un digit hexadécimal. Exemple:
Conversions hexadécimalbinaire consiste a associer a chaque digit du nombre hexadécimal son équivalent binaire sur 4 bits. Exemple:
Conversion des nombres fractionnaires
Opérations arithmétiques 1. Addition (+) :
Opérations arithmétiques 2. Soustraction (-) :
Opérations arithmétiques 3. Multiplication (x) :
Opérations arithmétiques 4. Division (/) :
Remarque Dans un ordinateur la taille des registres est fixe Nombres représentés sont limités. Lors d'une opération arithmétique, s'il y a une retenue qui est générée par le bit du poids fort on dit qu'il y a un débordement ou dépassement de capacité (overflow).
Dépassement de capacité (overflow). Exemple : Registres de 4 bits :
Représentation des nombres signés L’idée : ajouter un bit supplémentaire appelé bit de signe (BS). Si N>=0 alors BS = 0, sinon BS=1. Trois méthodes de représentation: Notation module plus signe, Notation complément a 1 (C à 1), Notation complément a 2 (C à 2).
Notation module plus signe Si le nombre est codé sur n bits, Le MSB (le bit le plus significatif) pour le signe, (n-1) bits pour le nombre en valeur absolue. Exemple: Pour n=8,
Notation module plus signe Si un nombre N est codé sur n bits, alors : - (2n-1 - 1) =< N <= +(2n-1 – 1) Exemple: Si n=5, N est entre (-15) et (+15). le zéro a deux représentations différentes: (BS = 0 /BS = 1)
Notation complément à 1 (Cp à 1) Un nombre positif est représenté en "Module plus Signe". Un nombre négatif : on remplace chaque bit par son complément (0 1, 1 0). Exemple:
Notation complément à1 (Cp à 1) En Cp à 1, la soustraction d’un nombre se réduit à l’addition de son complément. Exemple: -13 -11 (-13)cà1 + (-11)cà1 +13 : 0 0001101 -13 : 1 1110010 +11 : 0 0001011 -11 : 1 1110100 La retenue générée par le bit de signe doit être ajoutée au résultat obtenu
Notation complément à1 (Cp à 1)
Notation complément à1 (Cp à 1) Remarque: Si la retenue générée par le bit de signe (BS) et la retenue générée par le bit juste avant sont différentes dépassement de capacité (overflow) Exemple:
Notation complément a 2 (Cp à 2) Un nombre positif est représenté en "Module plus Signe". un nombre négatif en complément à 2, Cp à 2 Cp à 1 + 1 Si un nombre N est codé sur n bits, alors : -(2n-1 ) =< N <= +(2n-1 – 1)
Notation complément a 2 (Cp à 2) Exemple 1:
Notation complément a 2 (Cp à 2) Exemple 2: (-128) est la plus petite valeur négative que l’on peut coder sur un octet.
Notation complément a 2 (Cp à 2) En Cp à 2, la soustraction d’un nombre se réduit à l’addition de son complément. Exemple: -13 -11 (-13)Cp à 2 + (-11)Cp à 2 +13 : 0 0001101 -13 : 1 1110011 +11 : 0 0001011 -11 : 1 1110101 La retenue générée par le bit de signe est ignorée.
Notation complément a 2 (Cp à 2)
Notation complément a 2 (Cp à 2) Remarque: Si la retenue générée par le bit de signe (BS) et la retenue générée par le bit juste avant sont différentes dépassement de capacité (overflow) Exemple1 :
Exemple 2: Nombres codés sur 5 bits Calcul de 5 - 8 = ? +5: 0 0 1 0 1 - 8: 1 1 0 0 0 = 0 1 1 1 0 1 Calcul correct car 2 dernières retenues sont identiques. Le 5ème bit = 1 : nombre négatif (11101)cà2 = - (00011)2 = -3
Exemple 3: Nombres codés sur 5 bits Calcul de 9 - 8 = ? 1 +9: 0 1 0 0 1 - 8: 1 1 0 0 0 = 1 0 0 0 0 1 Résultat sur 6 bits mais calcul correct. Car 2 dernières retenues sont identiques Le bit de débordement (le 6ème bit) est à ignorer, il n'a aucune signification Le 5ème bit = 0 : nombre positif Résultat = (00001)2 = 1
Dépassement de capacité (overflow) Exemple 4: Nombres codés sur 5 bits Calcul de 9 + 8 = ? 1 +9: 0 1 0 0 1 +8: 0 1 0 0 0 = 0 1 0 0 0 1 Résultat sur 5 bits mais calcul incorrect. Car 2 dernières retenues sont différentes
Dépassement de capacité (overflow) Exemple 5: Nombres codés sur 5 bits Calcul de -9 - 8 = ? - 9: 1 0 1 1 1 - 8: 1 1 0 0 0 = 1 0 1 1 1 1 Calcul incorrect car 2 dernières retenues sont différentes
Exemple 5: Nombres codés sur 5 bits Calcul de -5 - 8 = ? 1 - 5: 1 1 0 1 1 - 8: 1 1 0 0 0 = 1 1 0 0 1 1 Calcul correct car 2 dernières retenues sont identiques Le bit de débordement (le 6ème bit) est à ignorer Le 5ème bit = 1 : nombre négatif (10011)Cà2 = -(01101) = - 13
Représentation des réels La représentation et le traitement des nombres réels appelés représentation et traitement flottants nombre sous forme mantisse et exposant : N = ±M x Be Exemple: 21,76 = 21,76 x100 = 2176 x 10-2…
Forme normalisée Parmi ses représentations , Exemples: la représentation normalisée se définit par l'existence d'un seul chiffre significatif (≠ 0) avant la virgule. Exemples: 21,76 2,176 x 101 154 1,54 x 102 0,125 1.25 x 10-1 0,001275 1,275 x 10-3
Représentation IEEE 754 La norme IEEE 754 définit un format standard pour la représentation flottante. Deux formats sont possible: Simple précision (32 bits) Double précision (64 bits)
e = Eréel +127 (Simple précision) (e7e6…e0) est un nombre non signeé ( e ). avec 0 < e < 255 si le nombre N est normalisé. e est représenté avec un format de type excédent 127 (1023 double précision). e = Eréel +127 (Simple précision) SM = 0 si N est positif SM = 1 si N est négatif m-1m-2…m-23 représente la partie fractionnaire de la mantisse .
Représentation IEEE 754 la partie entière est toujours égale a 1 pour les nombres normalises et en conséquence elle n'est pas représentée en machine (appelé bit caché).
Représentation IEEE 754 Exemple 1 représenter en IEEE 754 le nombre : -3,625
Représentation IEEE 754 Exemple 2 convertir en décimal le nombre écrit sous la forme IEEE 745.
e=0 et m≠0 N est dénormalisé Cas exceptionnels e=255 et m≠0 N=NaN pour représenter le résultat erroné d'une opération, par exemple 0/0. e=0 et m=0 N=0 deux représentations de 0, suivant le bit de signe. e=255 et m=0 N=± ∞ Les nombres plus grands ou le signe est positif : +∞ (si signe négatif : -∞). e=0 et m≠0 N est dénormalisé permet de représenter des nombres plus petits. bit implicite n'est plus 1, mais 0.
Représentation IEEE 754 Exemple 3 Convertir en décimal le nombre écrit sous la forme IEEE 745.
Opérations flottantes Les opérations flottantes impliquent un traitement simultané : des mantisses (c'est a dire des parties fractionnaires), et des exposants. Opérations de base: Addition Soustraction Multiplication Division
Addition et soustraction L'addition (soustraction) implique: Dénormalisation du nombre le plus petit pour que les exposants deviennent égaux, Addition (soustraction) des mantisses, Renormalisation éventuelle du résultat. Exemple: calculez A+B= ?
Addition et soustraction le nombre le plus petit
Multiplication et division La multiplication (division) implique: la multiplication (division) des mantisses, l'addition (soustraction) des exposants. L’ addition des exposants correspond à l'opération: La soustraction des exposants correspond à l'opération: e1 + e2 - 127 e1 - e2 + 127
Exemple:
Code BCD Certaines applications, exigent des calculs décimaux exacts, ce qui implique de travailler avec des nombres décimaux. On utilise alors la représentation décimale codée binaire (Binary Coded Decimal, BCD). Principe: chaque chiffre décimal (0 - 9) est code avec 4 chiffres binaires. Exemple: (329)10 = (0011 0010 1001)BCD
L’addition en BCD Pour l'addition, le résultat de l'opération peut donner un nombre compris entre 0 et 19. Si le nombre est compris entre 10 et 19, il faut apporter une correction en ajoutant la valeur 6 (0110)2 . Exemple: 4386+2893=?
L’addition en BCD
La soustraction en BCD Pour La soustraction; Si le nombre est compris entre 10 et 19, il faut apporter une correction par soustraction de la valeur 6 (0110)2 . Exemple: 4386-2893=?
La soustraction en BCD
Code binaire réfléchi (code Gray) Dans les codes pondérés, un poids est associé à chaque bit du mot de code. Si les poids p4, p3, p2, p1 sont associés aux bits b4, b3, b2, b1 N = b4p4+b3p3+b2p2+b1p1. Le code correspondant est généralement appelé code p4p3p2p1. Exemple: Le code BCD est un code pondéré 8421. Le code Gray est un code non pondéré dans lequel deux mots de code consécutifs ne diffèrent entre eux que par un seul bit.
Représentation des caractères Nombreux standards existent: le code ASCII (American Standard Code for Information Interchange). Il permet de représenter sur un octet des données alphanumériques (caractères latins, les chiffres décimaux, et autres informations ) Le standard Unicode Il utilise deux octets Il permet de représenter aussi des caractères non latins, arabe, asiatiques...