Circuits Logiques Chapitre 2 Système de Numération Systems de numération • Pour parler à propos des données binaires, on doit tout d’abord connaitre des systèmes de numérations • Le système numérique décimal (base 10) vous devez être familier avec! - Un numéro à base 10 varie de 0 a 9. - Un numéro a base 2 varie de 0 à 1 (système numérique binaire). A digit à base 2 est appelé aussi un ‘bit’. - A digit à base R varie de 0 a R-1 - A digit à Base 16 varie de 0 a 16-1 -(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F). On utilise les lettres A-F pour représenter les valeurs 10 a 15. Base 16 est aussi appelé ou justement ‘Hex’. Notation Positionnelle La valeur d’un nombre est déterminée en multipliant chaque digit par un poids et en additionnant. Le poids de chaque digit est une PUISSANCE de la BASE et il est déterminé par position. 2 1 0 -2 -1 953.78 = 9 x 10 + 5 x 10 + 3 x 10 + 7 x 10 + 8 x 10 = 900 + 50 + 3 + 0.7 + 0.08 = 953.78 3 2 1 0 -1 -2 1011.11 = 1x2 + 0x2 + 1x2 + 1x2 + 1x2 + 1x2 = 8 + 0 + 2 + 1 + 0.5 + 0.25 = 11.75 A2F 2 1 0 = 10x16 + 2x16 + 15x16 = 10 x 256 + 2 x 16 + = 2560 + 32 + 15 = 2607 15 x 1 Représentation Binaire • La base de toutes les données numériques est une représentation binaire • Binaire - signifie ‘deux’ -1, 0 -Vraie, Faux - Chaud, Froid - On, Off • On doit être capable de supporter plus que ces valeurs pour les problèmes réelles -1, 0, 56 -Vraie, Faux, Peut-être -Chaud, Froid, Tiède, Cool - On, Off, Leaky Conversion de n’importe quelle Base au Décimale La Conversion de n’importe quelle base au décimale est effectuée en multipliant chaque digit par son poids et on additionne. Binaire au Décimale 1011.11 = 1x23 + 0x22 + 1x21 + 1x20 + 1x2-1 + 1x2-2 = 8 + 0 + 2 + 1 + 0.5 + 0.25 = 11.75 Hex au Décimale A2F = 10x162 + 2x161 + 15x160 = 10 x 256 + 2 x 16 + = 2560 + 32 + 15 = 2607 15 x 1 Conversion d’un entier Décimal à n’importe quelle Base On peut convertir un nombre décimal à n’importe quelle base en divisant d’une façon répétitive par la base. En conversion binaire, on divise par 2: Convertir 53 au binaire 53/2 = 26, reste = 1 26/2 = 13, reste = 0 13/2 = 6 , reste = 1 6 /2 = 3, reste = 0 3/2 = 1, reste = 1 1/2 = 0, reste = 1 Bit Moins Significatif Bit Plus Significatif 53 = 110101 = 1x25 + 1x24 + 0x23 + 1x22 + 0x21 + 1x20 = 32 + 16 + 0 + 4 + 0 + 1 = 53 Conversions Binaire La conversion d’une fraction décimale au binaire est effectuée en multipliant d’une façon répétitive les résultats de la multiplication successive par 2. les retenus forment le nombre binaire. Convertir la fraction 0.188 au binaire. 0.188 x 2 = 0.376 0.376 x 2 = 0.752 0.752 x 2 = 1.504 0.504 x 2 = 1.008 0.008 x 2 = 0.016 retenue retenue retenue retenue retenue = = = = = 0 0 1 1 0 MSB Réponse = .00110 (for five significant digits) Plus de Conversions Convertir 53 au Hexadécimal 53/16 = 3, reste = 5 3 /16 = 0 , reste = 3 53 = (35)16 = 3 x 161 + 5 x 160 = 48 + 5 = 53 Nombres Hexadécimales Decimal Hexadecimal Binaire L’hexadécimal utilise 16 caractères pour représenter les nombres: les nombres 0 a 9 et les caractères alphabétique a de A a F. Les nombre binaire peuvent se convertir a l’hexadécimal en groupant 4 bits a la fois et en écrivant l’équivalent hexadécimal. Exprimer 1001 0110 0000 11102 en hexadécimal: Grouper le nombre binaire en 4-bits en commençant de droite a gauche. La réponse est 960E 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 A B C D E F 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Nombres Hexadécimales Decimal Hexadecimal Binary Hexadécimal est un système de numération pondéré. Les poids des colonnes sont des puissances de 16, et augmente de droite a gauche. Poids des colonnes { 163 162 161 160 4096 256 16 1 Exprimer 1A2F16 en décimal. En écrit les poids des colonnes : 4096 256 16 1 1 A 2 F16 1(4096) + 10(256) +2(16) +15(1) = 670310 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 A B C D E F 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Nombres Octales Decimal Octal utilise 8 caractères (nombres de 0 a 7) pour représenter les nombres. Il n’y a 8 ou 9 caractère en octal. Nombre binaire sont faciles a convertir a l’octal en groupant 3 bits a la fois et écrire l’équivalent octal chaque groupe. Exprimer 1 001 011 000 001 1102 en octal: Grouper le nombre binaire par 3-bits commencer de droite a gauche. Donc, 1130168 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Octal Binary 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Nombres Octales Decimal Octal est un système de numération pondéré. Les poids des colonnes sont des puissances de 8, et augmente de droite 12à gauche. Poids des colonnes { 83 82 512 64 81 8 8. 0 1 Exprimer 37028 en décimal. En écrit les poids des colonnes : 512 64 8 1 3 7 0 28 3(512) + 7(64) +0(8) +2(1) = 198610 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Octal Binary 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Hex au Binaire, Binaire au Hex A2F = 1010 0010 1111 345 = 0011 0100 0101 La conversion du Binaire à l’Hex est justement l’opposée. - Créer des groupes de 4 bits en débutant par le bit le moins significatif. - Si le dernier groupe n’admet pas 4 bits, on ajoute des zéros pour les nombres sans signes. 1010001 = 0101 0001 = 51 Ajout d’un zéro A Trick! Si on a nombre binaire large qui doit être convertir au décimal, tout d’abord on commence la conversion à l’HEX, puis l’HEX au décimal. Avantages: Moins de calcul! 110111110011 = 1101 1111 0011 = DF3 = 13 x 162 + 15 x 161 + 3x160 = 13 x 256 + 15 x 16 + 3 x 1 = 3328 + 240 + 3 = 3571 Addition Binaire Les lois de l’addition binaire sont 0+0=0 0+1=1 1+0=1 1 + 1 = 10 Somme = Somme = Somme = Somme = 0, Retenue = 0 1, Retenue = 0 1, Retenue = 0 0, Retenue = 1 Lorsque le retenue à l’entrée = 1 due à un résultat précédant, les lois sont 1 + 0 + 0 = 01 1 + 0 + 1 = 10 1 + 1 + 0 = 10 1 + 1 + 1 = 11 Somme = Somme = Somme = Somme = 1, Retenue = 0 0, Retenue = 1 0, Retenue = 1 1, Retenue = 1 Addition Binaire Additionner les nombres binaires suivants 00111 et 10101 et montrer l’équivalent décimal. 0 11 1 00111 10101 7 21 1 1 1 00 = 28 Soustraction Binaire Les lois de la soustraction binaire sont 0-0=0 1-1=0 1-0=1 10 - 1 = 1 avec un prêt de1 Soustraire 00111 de 10101 et montrer l’équivalent décimal. 1 11 / // 10101 00111 21 7 01 1 1 0 = 14 Addition Hexadécimale 3A + 28 62 A+8 = 2; un retenue de 1 au prochain colonne 1 (retenue) + 3 + 2 = 6. Réponse = 62. Décimal check. 3A = 3 x 16 + 10 = 58 28 = 2 x 16 + 8 = 40 58 + 40 = 98 62 = 6 x 16 + 2 = 96 + 2 = 98!! Soustraction Hexadécimale 34 - 27 0D 4-7 = D; avec un prêt de 1 de la prochaine colonne 3 - 1 (prêt) - 2 = 0. Réponse = 0D. Décimal check. 34 = 3 x 16 + 4 = 52 27 = 2 x 16 + 7 = 39 52 - 39 = 13 0D = 13 !! Complément à 1 On obtient le complément à 1 (complément restreint) d’un nombre binaire X en remplaçant les 0 par des 1 et les 1 par des 0. Par exemple, le complément à 1 de 11001010 est 00110101 Dans les circuits numériques, le complément à 1 est formé à l’aide des inverseurs: 1 1 0 0 1 0 1 0 0 0 1 1 0 1 0 1 Complément à 2 C’est la représentation utilisée dans tous les calculateurs. On obtient le complément à 2 (complément vrai) d’un nombre binaire en ajoutant un 1 au LSB du 1er complément. Rappelons que le complément à 1 de 11001010 est 00110101 (complément à 1) Pour former le complément à 2, ajouter 1: +1 1 1 0 0 1 0 1 0 0011011 0 (complement à 2) 1 0 0 1 1 0 1 0 1 Input bits Carry in Adder Output bits (sum) 0 0 1 1 0 1 1 0 (add 1) Nombres Binaires avec Signes Il existe plusieurs façons de représenter les nombres binaires avec signes ( + ou -). Dans tous les cas, le bit le plus significatif est le bit de signe, cela permet de distinguer si le nombre est positive ou négative. Les ordinateurs utilisent le complément à 2 modifié pour les nombres avec signes. Les nombres positifs sont stockés dans un vrai forme (avec un 0 pour le bit de signe) et les nombres négatifs sont stockés par un forme de complément (avec un 1 pour le bit de signe). Par exemple, le nombre positif 58 est écrit en utilisant 8-bits comme 00111010 (vrai forme). Bit de signe Bits de magnitude Nombres Binaires avec Signes Les nombres négatifs sont écrites comme le complément à 2 du nombre positif correspondant Le nombres négatif -58 s’écrit comme: -58 = 11000110 (forme complément) bit de signe Bits de Magnitude Une façon simple de lire un nombre avec signe qui utilise cette notation est d’assigner le bit de signe au colonne pondérée de 128 (pour un nombre a 8-bit). Puis additionner les colonnes pondérées pour les 1. Supposons que le bit de signe = -128, montrer que 11000110 = -58 comme le complément à 2 du nombre avec signe: 1 1 0 0 0 1 1 0 Colonne pondérée: -128 64 32 16 8 4 2 1. -128 +64 +4 +2 = -58 Floating Point Numbers Floating point notation est capable de représenter des grosses et de petites nombres en utilisant une forme de notation scientifique. A 32-bit single précision nombre est illustré. S E (8 bits) Bit de signeexposant (+127) F (23 bits) Magnitude with MSB dropped Exprimer la vitesse de la lumière, c, in single precision floating point notation. (c = 0.2998 x 109) In binary, c = 0001 0001 1101 1110 1001 0101 1100 00002. En notation scientifique, c = 1.001 1101 1110 1001 0101 1100 0000 x 228. S = 0 car le nombre est positive. E = 28 + 127 = 15510 = 1001 10112. F est le prochain 23 bits après le premier 1 est éliminé. In floating point notation, c = 0 10011011 001 1101 1110 1001 0101 1100 Operations Arithmétiques des Nombres avec Signes L’utilisation de la notation des nombres avec signe avec les nombres négatifs au complément à 2 simplifie l’addition et la soustraction des nombres avec signes . Règles de l’addition: - Ajouter les deux nombres avec signe. - Eliminer tout retenue final. -Le résultat est en forme de signe . Exemples: 00011110 = +30 00001111 = +15 00001110 = +14 11101111 = -17 11111111 = -1 11111000 = -8 00101101 = +45 11111101 = -3 1 11110111 = -9 Eliminer retenu Operations Arithmétiques des Nombres avec Signes Si le nombre de bits requis pour la réponse est excédée, il aura un dépassement de capacité (overflow). Cela arrive seulement si les deux nombres ont le même signe. L’overflow sera indiquée par un bit de signe incorrecte. Exemples: 01000000 = +128 01000001 = +129 10000001 = −126 Elimine retenu 10000001 = −127 10000001 = −127 100000010 = +2 Faux! La réponse est incorrecte et le bit de signe est changé . Operations Arithmétiques des Nombres avec Signes Règles de soustraction: -On prend le complément à 2 du 2eme nombre. - Puis on ajoute les nombres. - Elimine le retenu final. - Le résultat est en forme de signe. Exemples : 00011110 (+30) 00001110 (+14) 11111111 (−1) − 00001111 –(+15) − 11101111 –(−17) − 11111000 –(−8) complément à 2 du 2eme nombre et ajoute: 00011110 = +30 11110001 = −15 1 00001111 = +15 Elimine retenu 00001110 = +14 00010001 = +17 00011111 = +31 11111111 = −1 00001000 = +8 1 00000111 = +7 Elimine retenu Code Binaire Un Chiffre Binaire (one bit) peut avoir les valeurs 0, 1. On peut représenter 2 cas: 0 = chaud, 1 = froid, 1 = Vraie , 0 = Faux, 1 = on, 0 = off. Deux Chiffres Binaires (two bits) peut avoir les valeurs 00, 01, 10, 11. On peut représenter 4 cas: 00 = chaud, 01 = tiède, 10 = frais, 11 = froid. Trois Chiffres Binaires (three bits) peuvent prendre les valeurs 000, 001, 010, 011, 100, 101, 110, 111. On peut représenter 8 cas 000 = Noir, 001 = Rouge, 010 = Rose, 011 = Jaune, 100 = Brun, 101 = Bleu, 110 = Vert , 111 = Blanc. Code Binaire N bits (ou N binary Digits) représentent 2N cas différents. Exemple, 4 bits représentent 24 ou 16 cas ou valeurs différents. N bits peut avoir des valeurs décimaux sans signes à partir de 0 a 2N-1. Les Codes sont donnés sous forme de tableau. 000 noir 001 rouge 010 rose 011 jaune 100 brun 101 bleu 110 vert 111 blanc Décimal Codé en Binaire (BCD) Décimal Codé en Binaire(BCD) est un code pondéré utilisé dans les systèmes numériques lorsqu’il nécessaire de monter les nombres décimaux dans les displays à horloges. Le tableau illustre la différence entre le code binaire et le BCD. Le BCD représente chaque digit décimal avec un code à 4-bit. On note que les codes 1010 à 1111 ne sont pas utilisés en BCD. Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Binary 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 0001 0000 0001 0001 0001 0010 0001 0011 0001 0100 0001 0101 BCD On peut penser au BCD en fonction des colonnes pondérées dans des groupes de quatre bits. Pour un nombre BCD à 8bit, les colonnes pondérées sont: 80 40 20 10 8 4 2 1. Quelles sont les colonnes pondérées du nombre BCD 1000 0011 0101 1001? 8000 4000 2000 1000 800 400 200 100 80 40 20 10 8 4 2 1 on peut ajouter les colonnes pondérées où il existe un 1 pour obtenir un nombre décimal. Dans ce cas: 8000 + 200 +100 + 40 + 10 + 8 +1 = 835910 BCD Une expérience au labo dans lequel le BCD est converti au décimal Code Excédant 3 (Access 3 Code) Code excédant 3 est un code non pondéré. On obtient ce code en décalant vers le haut et de trois lignes, le code binaire (pondéré 8-42-1) Ce code est intéressant pour effectuer des soustractions mais il est inutilement compliqué Decimal 0 1 2 3 4 5 6 7 8 9 Binary Excedant 3 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 Code Binaire Reflechi (Gray code) Code de Gray est un code non pondéré où il existe un changement d’un seul bit entre deux codes ou deux termes successives. Ces deux termes sont adjacents Code de Gray est utilisé pour éviter les problèmes dans les systèmes où un erreur peut arriver si plus qu'un bit change à la fois. Decimal Binary Gray code 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000 Gray code A shaft encoder is a typical application. Three IR emitter/detectors are used to encode the position of the shaft. The encoder on the left uses binary and can have three bits change together, creating a potential error. The encoder on the right uses gray code and only 1-bit changes, eliminating potential errors. Binary sequence Gray code sequence ASCII ASCII (American Standard Code for Information Interchange) est un code pour les caractères alphanumériques et les caractères de contrôle. Dans son forme original, ASCII encode 128 caractères et symboles utilisant 7-bits. Les premiers 32 caractères sont les caractères de control. 7 bits peut représenter 27 valeurs ou 128 cas différents. Cela est suffisant pour représenter L’alphabet Latin (A-Z, a-z, 0-9, la ponctuation, et quelques symboles comme le signe de dollar $). Mais quoi à propos des autres symboles ou autres langages? ASCII In 1981, IBM A introduit une extension du code ASCII. C’est un code à 8-bit où l’ensemble de caractère est augmenté à 256. ‘A’ = 01000001 = 4116 ‘&’ = 00100110 = 2616 Autres extensions de code tel que le Unicode sont introduites pour supporter les caractères dans des langues autre que l’anglais. UNICODE UNICODE est un code de 16-bit afin de représenter les données alphanumériques. Avec 16 bits, on peut représenter 216 ou 65536 symboles différents. 16 bits = 2 Bytes ou octets par caractère. 0041-005A 0061-4007A A-Z a-z Autre alphabet/symboles 3400-3d2d 4E00-9FFF Symboles Korean Hangul Han (Chinois, Japonais, Korean) UNICODE est utilisée par les fureteur Web (browsers), Java, et la plupart des logiciels. Byte Un groupe de huit bits Floating- point Une représentation du nombre basée sur une number notation scientifique dans lequel le nombre consiste a un exposant et une mantisse. Hexadécimal Un system numérique à base 16. Octal Un system numérique à base 8. BCD Décimal binaire codé; un code numérique dans lequel chaque digit décimal , 0 à 9, est représenté par un groupe de 4 bits. Alphanumeric Consiste des numéraux, lettres, et autre caractères ASCII American Standard Code for Information Interchange; le code alphanumérique le plus utilisé. Parity En relation aux codes binaires, la condition de pair ou impair dans un groupe de code (groupe de 1). Cyclic redundancy Un type de code pour la détection des erreurs. check (CRC) Méthode de Parité La méthode de parité est une méthode pour la détection des erreurs dans les transmissions simples des erreurs impliquant un bit (ou un nombre impair of bits). Le bit de parité est “extra” bit attaché a un groupe de bits pour forcer le nombre des 1 a être paire (parité pair) ou impair (parité impair). Le caractère ASCII for “a” est 1100001 and for “A” est 1000001. Quelle est le bit correct to append to pour que les deux admettent la parité impair? The ASCII “a” has an odd number of bits that are equal to 1; therefore the parity bit is 0. The ASCII “A” has an even number of bits that are equal to 1; therefore the parity bit is 1. Verification de la Redundance Cyclique La Vérification de la Redondance Cyclique (CRC) est une méthode de détection des erreurs qui se trouve dans les grandes blocks de données. De la coté de transmission, une vérification de la somme est attaché ou annexé à un block de données. A la réception, une vérification de la somme est générée et comparée au checksum envoyée. Si la vérification de la somme est pareille, aucun erreur est détecté.