II : REPRESENTATION DES NOMBRES : II 1 : Nombres BINAIRES : Les ordinateurs numériques utilisent des nombres binaires. Le système de numérotation binaire ou système à base 2 ne comporte que des chiffres 0 et 1. Ces chiffres binaires sont appelés bits ( BIT provient de la contraction (de Binary digit) Définitions : * Mot binaire : est un ensemble d'éléments binaires (eb) Exemple : 1011 un mot de 4 bits appelé quartet 11000110 un mot de 8 bits appelé octet 1111000011110000 un mot de 16 bits Physiquement, dans les circuits électroniques numériques, un bit 0 est représenté par une tension LOW (BASSE) et un bit 1, par une tension HIGH (HAUTE). D'habitude, on utilise le système de numérotation décimal. Le système décimal ou système à base 10 comporte 10 chiffres (0 9). Exemple : le décimal 1549 = 1* 1000 + 5*100 + 4*10 + 9*1 Le système binaire possède également une caractéristique de pondération. Exemple : le décimal 9 = 1*2 3 + 0*2 2 + 0*2 1 + 1*2 0 est représenté par son équivalent en binaire (1001) Exercice : représenté le décimal 7 en binaire. 0111 A connaître par cœur : Puissance de 2 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 Valeurs de position 128 64 32 16 8 4 2 1 Binaire 1 0 1 1 0 1 1 0 Décimal 128 + 32 + 16 + 4 + 2 = 182 1
Comment convertir le binaire 10110110 en son équivalent décimal? La procédure de conversion est illustrée par le tableau ci dessus : Comment convertir le décimal 155 en son équivalent binaire? La procédure de conversion est la suivante : Le décimal 155 est divisé par 2, ce qui donne un quotient de 77 et un reste de 1. et ainsi de suite. 155 / 2 = 77 reste 1 77 / 2 = 38 reste 1 38 / 2 = 19 reste 0 19 / 2 = 9 reste 1 9 / 2 = 4 reste 1 4 / 2 = 2 reste 0 2 / 2 = 1 reste 0 1 / 2 = 0 reste 1 1 0 0 1 1 0 1 1 II 2 : Nombres HEXADECIMAUX : Une case mémoire de micro typique peut contenir le binaire 10011110. Cette longue chaîne de 0 et de 1 est difficile à garder en mémoire et lassante à entrer sur clavier. Le nombre 10011110, pourrait être converti en décimal, ce qui donnerait 10011110 =158, mais le processus de conversion prendrait trop de temps. La plupart des systèmes microinformatiques utilisent la notation hexadécimale pour simplifier la mémorisation et la manipulation physique des binaires tels que 10011110. Le système de numérotation hexadécimale ou hexa (de base 16) utilise les 16 symboles, 0 à 9, A, B, C, D, E et F. 2
Décimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Hexadécimal 0 1 2 3 4 5 6 7 8 9 A B C D E F Binaire 8 4 2 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 Remarquons que chaque symbole hexa peut être représenté par une combinaison unique de 4 bits. Ainsi la représentation binaire 10011110 est l'hexa 9E. 1001 1110 9 E Comment convertir le binaire 111010 en hexa? Groupe de Groupe de 4 bits 4 bits Binaire 0011 1010 Hexadécimal 3 A Comment convertir l'hexa 7F en binaire? Hexadécimal 7 F Binaire 0111 1111 3
Convertissons l'hexa 2C6E en décimal Puissance de 16 16 3 16 2 16 1 16 0 Valeurs de position 4096 256 16 1 Hexadécimal 2 C 6 E 4096 256 16 1 x 2 x 12 x 6 x 14 Décimal 8192 + 3072 + 96 + 14 = 11374 Convertissons le décimal 15 797 en hexa 15797 / 16 = 987 reste 5 décimal 5 décimal 987 / 16 = 61 reste 11 décimal B hexa 61 / 16 = 3 reste 13 décimal D hexa 3 / 16 = 0 reste 3 décimal 3 hexa 3 D B 5 II 3 : Nombres en OCTAL : La notation octale, comme la notation hexa, est utilisée à la représentation des binaires. La numération octale comporte 8 chiffres de 0 à 7. Convertissons le binaire 11111000100 en son équivalent octal. En commençant par le plus petit binaire, nous divisons ce nombre en groupe de 3 bits. Ensuite, nous transformons chaque triplet (groupe de 3 bits) en son chiffre octal équivalent. Binaire 011 111 000 100 Octal 3 7 0 4 Convertissons maintenant l'octal 6521 en son équivalent binaire. 4 Octal 6 5 2 1 Binaire 110 101 010 001
Convertissons, maintenant l'octal 2357 sous sa forme décimale. Puissance de 8 8 3 8 2 8 1 8 0 Valeurs de position 512 64 8 1 Octal 2 3 5 7 512 64 8 1 x 2 x 3 + x 5 + x 7 Décimal 1024 + 192 + 40 + 7 = 1263 Convertissons le décimal 3336 en son équivalent octal. 3336 / 8 = 417 reste 0 décimal 0 octal 417 / 8 = 52 reste 1 décimal 1 octal 52 / 8 = 6 reste 4 décimal 4 octal 6 / 8 = 0 reste 6 décimal 6 octal 6 4 1 0 La plus part des microprocesseurs traitent des groupes de 4, 8 et 16 bits. Par conséquent, c'est la notation hexa qui est utilisée plutôt que la notation octale. II 4 : Nombres DCB (Décimaux Codés Binaires) : A cause de la commodité de conversion, les nombres binaires purs sont représentés soit en octal, soit en hexa. Cependant, la conversion binaire décimal n'est pas une opération simple. Dans le cas de calculateurs, de jeux et d'instruments numériques, où les entrées et sorties utilisateur en décimal sont fréquentes, on utilise un code particulier pour présenter ces décimaux. Ce code est le code BCD (pour Décimal Codé Binaire). 5
Décimal Binaire 8 4 2 1 0 1 2 3 4 5 6 7 8 9 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 Cette table représente quelques décimaux et les équivalents BCD correspondants. Ecrivons le décimal 3691 en BCD Décimal 3 6 9 1 BCD 0011 0110 1001 0001 Convertissons, maintenant, le BCD 1000 0000 0111 0010 en son équivalent décimal BCD 1000 0000 0111 0010 Décimal 8 0 7 2 Problème posé par le BCD : Exemple : Addition : 3 0011 6 0110 +4 0100 + 5 0101 7 0111 11 1011 Résultat faux car 11 en BCD = 0001 0001 Solution on ajoute + 6 (0110) si le résultat est + 0110 supérieur à 9 10001 ( 11 en BCD) 6
II 5 : Représentation des nombres algébriques : Il n'est pas question ici, de faire précéder un nombre par un signe (+ ou ) qui ne serait pas compris par un microprocesseur. Il est donc indispensable d'adopter quelques conventions de représentation. Nous raisonnerons sur des mots d'un octet (8 bits).le plus grand nombre qu'on peut représenter su 8 bits est : 28 1 1111 1111 = 256 1 = 255 L'élément binaire de rang le plus élevé (poids fort ou MSB) représente le signe du nombre : 0 pour un nombre positif 1 pour un nombre négatif a : Nombre positif : rangs 6 à 0). Il est représenté par son signe (eb de rang 7) suivi de sa valeur absolue (eb de Exemple : signe + valeur absolue + 27 0 001 1011 L'étendue des nombres positifs que l'on peut écrire sur un octet va de : 0000 0000 à 0111 1111 soit en décimale : 0 à 127 en hexadécimale : 00 à 7F b : Nombre négatif : Il existe plusieurs façons de représenter les nombres négatifs mais nous ne retiendrons ( dans de ce cours) que deux: * La valeur signée : Consiste à réserver tout simplement 1 bit pour le signe (le bit le plus à gauche = eb de rang 7). 1 pour un nombre négatif Exemple : +6 0000 0110 6 1000 0110 7
* Le complément à deux : Il a aussi un bit de signe qui vaut 0 pour un nombre positif 1 pour un nombre négatif On effectue la négation d'un nombre en 2 étapes : 1) on remplace d'abord tous les 1 par 0 et tous les 0 par 1 ( on parle de complémentation à1 2) Puis on additionne 1 au résultat obtenu. Exemple : représenter 6 en complément à deux : +6 0000 0110 1111 1001 (complément à 1) + 1 6 1111 1010 (complément à 2) + 0000 0110 (on rajoute 6 pour vérifier le résultat) 0000 0000 Remarque : si une retenue est engendrée au niveau du bit le plus à gauche, elle est ignorée. L'étendue des nombres négatifs que l'on peut écrire sur un octet va de : 1111 1111 à 1000 0000 soit en décimale : 1 à 128 en hexadécimale : FF à 80 II 6 : Arithmétique binaire : L'addition, la soustraction ou la multiplication binaire sont exécutées de manière identique à celle de l'arithmétique. II 6 a : Les règles de l'addition binaire : 0 0 (1) 1 + 0 + 1 + 1 0 0 0 8
Exemple : 59 0011 1011 + 24 + 0001 1000 83 0101 0011 63 0011 1111 + 31 0001 1111 94 0101 1110 II 6 b : Les règles de la soustraction binaire : 0 1 1 0 (1) 1 0 1 0 (1) 1 car + 1 0 0 1 1 0 Exemple : 1110 1010 0110 0110 0111 1000 1000 0101 0001 1010 0011 1111 1 1 111 111 0110 0101 0100 1100 0011 1001 II 6 c : Les règles de la multiplication binaire : 0 1 1 0 x 0 x 1 x 0 x 1 0 1 0 1 Exemple 13 1101 x 5 x 101 65 1101 0000 1101 100001 II 7 : Représentation des caractères: Il existe des codes qui décrivent à la fois des nombres et des caractères alphabétiques. Ces codes sont dits alphanumériques. 9
Le code alphanumérique le plus répandu est le code standard américain pour l'échange d'information ou code ASCII (code d'ibm). C'est une représentation sur 7 bits des chiffres, des majuscules, des minuscules et les signes de ponctuation (+,,, ;,). Exemples : A 100 0001 a 110 0001 # 010 0011! 010 0001 10