Faculté des Sciences Dhar El Mehraz Fès Département de Physique Chapitre 1 LA I M A L Systèmes de numérations a R . r P E d i h c Pr. Rachid El Alami 2023/2024 [email protected] 1. Introduction ◼ ◼ I M Systèmes de numérations A L A L’électronique numérique manipule des variables logiques 0 ou 1 obéissant aux règles de l’algèbre de Boole. Nous allons voir dans cette partie comment représenter une information en utilisant des variables logiques. d i h c L E 1) Représentation des nombres Base 2, Base 10, Base 16 2) Changement de base : conversion vers la base 10, vers la base 2, vers la base 16 3) Opérations arithmétiques . r a R 4) Codage : binaire, BCD, … P R. EL ALAMI 2 1. Systèmes de numérations 1.1 Représentation des nombres A L A I M ◼ On représente d’habitude les nombres à l’aide des symboles {0,1,2,…,9} qui constitue ce qu’on appelle une base décimale, et les caractères alphabétiques à l’aide des lettres {A,B,…, a,b,…}. ◼ Pour pouvoir traiter ces informations à l’aide d’une machine, il faut les traduire en langage machine qui est une suite de 0 et 1: ◼ R . r d i h c a L E 0 → Absence du signal 1 → présence du signal {0, 1} constitue une base binaire Ces deux états, 0 et 1, sont appelés physiquement des bits. P R. EL ALAMI 3 1.1 Représentation des nombres 1.1.1 Systèmes de numérations a. Numération décimale L E A L A ◼ C’est le système de numération usuel dans la vie quotidienne; puisque b=10, il dispose de 10 symboles: 0,1,2, … , et 9. ◼ Par exemple; l’entier 1596 correspond à : d i h c a I M (1596)10 = 1 x 103 + 5 x 102 + 9 x 101 + 6 x 100 P R . r R. EL ALAMI 4 1.1 Représentation des nombres 1.1.1 Systèmes de numérations b. ◼ ◼ Numération binaire A L A I M La numération en base 2 ou numération binaire utilise deux symboles 0 et 1. cette base est très pratique en electronique numérique pour distinguer 2 états logiques. On écrit: d i h c a L E (an-1 an-2 … a2 a1 a0)2 = an-1 x 2n-1 + an-2 x 2n-2 + … + a2 x 22 + a1 x 21 + a0 x 20 ◼ ◼ La partie à droite de l’équation donne la valeur en décimal du nombre binaire écrit à gauche, par exemple: (1011)2 = 1 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 11)10 R . r MSB LSB Le bit de poids le plus fort est appelé MSB ( Most Significant Bit). Le bit de poids le plus faible est appelé LSB ( Less Significant Bit). P ◼ R. EL ALAMI 5 1.1 Représentation des nombres 1.1.1 Systèmes de numérations c. Numération hexadécimale A L A I M L’utilisation de la base b=16 résulte du développement des microordinateurs. ◼ Les symboles utilisés dans cette base sont les 10 chiffres {0,1, … ,9} complétés par les lettres A (pour 10) à F (pour 15). ◼ On écrit: (an-1 an-2 … a1 a0)16 = an-1 x 16n-1 + an-2 x 16n-2 + … + a1 x 161 + a0 x 160 ◼ ◼ d i h c a L E De même, la partie à droite de l’équation donne la valeur en décimal du nombre hexadécimal écrit à gauche, par exemple: (AA)16 = A x 161 + A x 160 = 10 x 16 + 10 x 1 = (170)10 (B7)16 = B x 161 + 7 x 160 = 11 x 16 + 10 x 1 = (183)10 P R . r R. EL ALAMI 6 1.1 Représentation des nombres 1.1.2 Changement de base : conversion a. Conversion vers la base décimale L E A L A I M ◼ Le principe de la conversion résulte directement des définitions précédentes et de la façon dont on écrit un nombre dans une base donnée. ◼ De façon générale on écrit: d i h c a (N)b = an-1 x bn-1 + an-2 x bn-2 + … + a1 x b1 + a0 x b0 ◼ R . r Où b est codé en décimal, la conversion est ainsi réalisée automatiquement puisque le résultat est écrit directement en base 10. P R. EL ALAMI 7 1.1 Représentation des nombres 1.1.2 Changement de base : conversion b. A L A Conversion de la base 10 vers la base 2 L E I M L’opération repose sur la remarque suivante: Le chiffre recherché de poids le plus faible est le reste de la division du nombre par la base b ( de façon générale). ◼ ◼ d i h c a Soit N le nombre à convertir, on peut écrire: (N)b = an-1 bn-1 + an-2 bn-2 + … + a1 b1 + a0 b0 = (an-1 bn-2 + an-2 bn-3 + … + a2 b1 + a1) x b + a0 avec a0 < b R . r P ◼ Le chiffre suivant s’obtient de la même façon à partir du quotient est ainsi de suite jusqu’au le chiffre de poids le plus fort. R. EL ALAMI 8 1.1 Représentation des nombres 1.1.2 Changement de base : conversion A L A I M ◼ D’une autre manière, on divise le nombre à convertir par 2 de manière successive, c.-à-d., on divise le nombre à convertir N par 2 puis le quotient par 2, jusqu’à l’obtention d’un quotient nul. ◼ Les restes obtenus dans le sens inverse représente N en binaire. ◼ Exemple: 44 d i h c a L E R . r 44 = (101100)2 P R. EL ALAMI 9 1.1 Représentation des nombres 1.1.2 Changement de base : conversion c. ◼ ◼ ◼ ◼ A L A Conversions directes binaire - hexadécimal I M Les conversions entre les bases binaire et hexadécimal peuvent se faire par l’intermédiaire de la base 10 en appliquant les méthodes précédentes. Il est cependant possible d’effectuer la conversion directement, La méthode consiste à découper le nombre à convertir en « paquets » facilement convertible dans la base désirée. Exemple: (1101 1000 0111)2 = (D87)16 d i h c a L E R . r D 8 7 Ou bien dans l’autre sens (BD9)16 = (1011 1101 1001)2 P R. EL ALAMI 10 1.1 Représentation des nombres 1.1.3 Représentations des nombres négatifs a. ◼ ◼ ◼ Représentation par un bit de signe A L A I M Représenter un entier relatif A sur (N+1) bits, consiste à considérer le bit de poids fort MSB comme étant un bits de signe; vaut 0 pour un nombre positif et 1 pour un nombre négatif. Les N autres bits sont utilisés pour représenter |A| Avec : N −1 signe (0) = 1 A = Signe ( an ) ai 2i i =0 signe (1) = - 1 Remarque a0 : permet de déterminer la parité d’un nombre si a0 = 1 → le nombre est impaire si a0 = 1 → le nombre est paire d i h c a L E P R . r R. EL ALAMI 11 1.1 Représentation des nombres 1.1.3 Représentations des nombres négatifs ◼ Exemple: représenter – 7 sur 8 bits A L A I M (7)10 = (0000 0111)2 → (-7)10 = (1000 0111)2 L E ◼ L’inconvénient de ce type de codage est double: ◼ Il y’a deux représentations pour le zéro: R . r P ◼ d i h c a +0)10 = 0000 0000)2 - 0)10 = 1000 0000)2 En plus, la soustraction ne fonctionne pas R. EL ALAMI 12 1.1 Représentation des nombres 1.1.3 Représentations des nombres négatifs b. A L A Représentation par le complément à 1 I M Ce type de codage opère de la manière suivante: Si A > 0 → on prend son codage en binaire pur Si A < 0 → on prend le codage en binaire de |A| puis on complémente tous les bits de codage ത = 1 et 1ത = 0 ◼ Sachant que le complément de 0 noté 0 ◼ Exemple: (7)10 = (0000 0111)2 =|-7| → (-7)10 = (1111 1000)2 ◼ De même, l’inconvénient de ce type de codage est qu’il y’a deux représentations pour le zéro: +0)10 = 0000 0000)2 - 0)10 = 1111 1111)2 ◼ Mais, cette représentation permet d’effectuer la soustraction ◼ d i h c a L E P R . r R. EL ALAMI 13 1.1 Représentation des nombres 1.1.3 Représentations des nombres négatifs c. A L A Représentation par le complément à 2 Ce type de codage opère de la manière suivante: Si A > 0 → on prend son codage en binaire pur Si A < 0 → on prend le codage en binaire de |A| puis on prend son complément auquel on ajoute 1. ◼ Sachant que : 1+0=1 ; 0+1=1 ; 0 + 0 = 0 ; 1 + 1 = 10 ◼ ◼ Exemple: 7)10 = 0000 0111)2 =|-7| R . r P ◼ d i h c a L E → I M -7)10 = 1111 1000)2 + 1 = 1111 1001)2 Cette représentation permet aussi d’effectuer la soustraction. R. EL ALAMI 14 1.1 Représentation des nombres 1.1.3 Représentations des nombres négatifs d. Passage de la base 2 vers 10 L E A L A I M ◼ Soit A)2 = an … a2 a1 a0 un nombre binaire, selon le type de codage de A; Si A > 0 → A)10 = σ𝑛𝑖=0 𝑎𝑖 2𝑖 ◼ Si A < 0 → 3 cas: ◼ d i h c a 𝑖 1) En binaire signé: A)10 = 𝑆𝑖𝑔𝑛𝑒(𝑎𝑛 ) σ𝑛−1 𝑖=0 𝑎𝑖 2 2) En complément à 1: A)10 = − 𝐴ҧ )2 10 3) En complément à 2: A)10 = − 𝐴ҧ )2 + 1 10 P R . r R. EL ALAMI 15 1. Systèmes de numérations 1.2 Addition arithmétique ◼ ◼ C’est le même principe que l’addition décimale, on aligne les bits de même poids et on effectue l’addition comme en base décimale. Selon le type de codage, on distingue 2 type d’additions: L E 1.2.1 Addition en complément à 1 ◼ ◼ ◼ A L A I M d i h c a La soustraction de deux nombre A – B est l’opération d’addition de A et de ( - B ). On effectue cette addition de A et (- B), si on a une retenue on l’ajoute au résultat et le résultat est positif. Sinon, c.-à-d. la retenue =0, le résultat est négatif et on complémente. P R . r R. EL ALAMI 16 1.2 Addition arithmétique 1.2.1 Addition en complément à 1 ◼ Exemple: effectuons l’opération 17 – 8 = 9 17)10 = 0001 0001)2 8)10 = 0000 1000)2 → 0001 0001 1111 0111 1 0000 1000 1 0000 1001 = 9 L E - 8)10 = 1111 0111)2 d i h c a En C1 → R . r Retenue P A L A I M R. EL ALAMI Si on a une retenue on l’ajoute au résultat et le résultat est > 0 17 1.2 Addition arithmétique 1.2.2 Addition en complément à 2 A L A I M De la même manière que l’addition en C1, on effectue l’addition de A et ( - B), pour (– B) on utilise le C2. ◼ Si on a une retenue, le résultat est définitif et >0, Sinon le résultat est négatif et dans ce cas on complémente à 2. ◼ Exemple: 16 – 9 = 7 16)10 = 0001 0000)2 9)10 = 0000 1001)2 → en C2 - 9)10 = 1111 0110)2 + 1 = 1111 0111)2 ◼ d i h c a En C2 → L E 0001 0000 1111 0111 1 0000 0111 = 7 P R . r Si on a une retenue le résultat est définitif et > 0 La retenue est ignorée R. EL ALAMI 18 1.3 Codage des nombres 1.3.1 Code BCD (Binary Coded Decimal) A L A I M ◼ Il s’agit d’une représentation des nombres en base 10, où chaque chiffre est codé en binaire. ◼ Il faut 4 bits pour représenter les 10 chiffres de la base 10 et chaque bit d’un groupe de est affecté de son poids naturel. ◼ On écrit ainsi par exemple: d i h c a L E 421)10 = 0100 0010 0001)BCD R . r P ◼ 4 2 1 En code BCD un nombre de n chiffres occupe toujours 4xn bits R. EL ALAMI 19 1.3 Codage des nombres 1.3.2 Codes adjacents A L A I M ◼ Lorsque deux chiffres ou nombre consécutifs ont toujours des représentations qui ne différent que par un seul bit on dit qu’il s’agit d’un code adjacent. ◼ Et si l’adjacence est complète, avec retour au point de départ, on parle de code cyclique. ◼ Par exemple, on représente la construction des codes cycliques appelés code GRAY, pour la numération décimale: d i h c a L E P R . r R. EL ALAMI 20 1.3 Codage des nombres 1.3.2 Codes adjacents Codage décimal Binaire naturel A L A I M Codage GRAY ou binaire réfléchi 0 000 000 1 001 001 2 010 011 3 011 010 4 100 110 5 101 111 6 110 101 7 111 100 N.B: pour passer d’une ligne à la suivante, on inverse le bit le plus à droite possible conduisant à un nombre nouveau. d i h c a L E P R . r R. EL ALAMI 21 1.3 Codage des nombres 1.3.2 Codes adjacents ◼ A L A I M Le nom de code binaire réfléchi vient d’une méthode de construction plus pratique pour choisir quel bit à inverser quand on passe d’un nombre au suivant. d i h c a L E 1) On choisit un code de départ: zéro est codé 0 et un est codé 1 2) Puis à chaque fois qu’on a besoin d’un bit supplémentaire, on symétrise les nombres déjà obtenus (comme une réflexion sur miroir) R . r 3) Enfin, on rajoute un 0 à gauche des « anciens » nombres et un 1 aux nouveaux nombres, P R. EL ALAMI 22 1.3 Codage des nombres 1.3.2 Codes adjacents ◼ Exemple: Décimal 0 1 GRAY 0 1 anciens nombres P GRAY ·0 00 ·1 01 ·1 11 ·0 10 Miroir nouveaux nombres d i h c a R . r L E Décimal 0 1 2 3 A L A Décimal 0 1 2 3 4 5 6 7 I M GRAY · 00 000 · 01 001 · 11 011 · 10 010 · 10 110 · 11 111 · 01 101 · 00 100 miroir R. EL ALAMI 23 1.3 Codage des nombres 1.3.2 Codes adjacents A L A I M ◼ Une autre méthode plus simple: ◼ Si le nombre de 1 est pair, il faut inverser le bit le plus à droite, ◼ Et si le nombre de 1 est impair → il faut inverser le bit situé à gauche du 1 le plus à droite, d i h c a L E P R . r R. EL ALAMI 24