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