Numération Page 1 sur 5 Sommaire : I- Introduction II- Différentes bases Base 10 Base 2 Base 16 III- Correspondance IV- Conversion décimal -> binaire binaire -> décimal hexadécimal -> binaire hexadécimal -> décimal décimal -> héxadécimal code complément à 2 (binaire négatif) V- Exercices Lycée CHEVALIER D’EON – TONNERRE – BTS Assistance Technique Ingénieur Cours d’Automatisme Informatique Industrielle M. GRACZYK Cours d’Automatisme Informatique Industrielle : Numération Page 2 sur 5 I- Introduction 01011 Nous avons vu précédemment que la fonction traiter traite la plupart du temps des informations de type binaires (numériques). Le traitement des signaux peut se faire en réalisant un certain nombres de fonctions (ET, Ou, non, calculs sur nombres, …). 21+3= Pour comprendre comment la fonction traiter réalise des calculs, il faut être capable de comprendre la correspondance entre la base 10 (base dans laquelle nous réalisons les calculs) et la base 2 (base dans laquelle calcule la fonction traiter). Nous en profiterons pour parler de la base 16 qui est une base 2 améliorée. II- Différentes bases : Pour coder les nombreuses positions que peut prendre le système numérique, différents codes ont été développés. Base 10 ou décimal. 10 rents existent dans cette base. codes diffé- 0;1;2;3;4;5;6;7;8;9 C’est le système que l’on utilise pour compter. Si on veut aller plus loin dans le comptage, on combine ces codes. Exemple : 45d ou 4510 Base 2 ou binaire. 2 codes différents existent dans cette base. 0;1 C’est le système que les machines utilisent pour compter. Le signal est présent ou absent dans un fil électrique. Si on veut aller plus loin dans le comptage, on combine ces codes. Exemple : 1011b ou 10112 Base 16 ou hexadécimal. 16 codes différents existent dans cette base. 0;1;2;3;4;5;6;7;8;9;A; B;C;D;E;F C’est le système que l’on utilise pour programmer les machines puis qu’il s’agit d’un pseudo-binaire ou chaque code hexadécimal correspond à un code binaire sur 4 chiffres. Si on veut aller plus loin dans le comptage, on combine ces codes. Exemple : $A12 ou A12h ou A1216 Lycée CHEVALIER D’EON – TONNERRE – BTS Assistance Technique Ingénieur Cours d’Automatisme Informatique Industrielle M. GRACZYK Cours d’Automatisme Informatique Industrielle : Numération Page 3 sur 5 III- Correspondance Tableau de correspondance : Décimal Binaire Hexadécimal Binaire réfléchi ou code Gray 0 0d 0 1d 0 0000b 0 0001b 0 0h 0 1h 0 0000 0 0001 0 2d 0 3d 0 0010b 0 0011b 0 2h 0 3h 0 0011 0 0010 0 4d 0 5d 0 6d 0 7d 0 0 0 0 0100b 0101b 0110b 0111b 0 0 0 0 4h 5h 6h 7h 0 0 0 0 0110 0111 0101 0100 0 8d 0 9d 1 0d 1 1d 1 2d 1 3d 1 4d 1 5d 0 0 0 0 0 0 0 0 1000b 1001b 1010b 1011b 1100b 1101b 1110b 1111b 0 8h 0 9h 0 Ah 0 Bh 0 Ch 0 Dh 0 Eh 0 Fh 0 0 0 0 0 0 0 0 1100 1101 1111 1110 1010 1011 1001 1000 1 6d 1 0000b 1 0h 1 1000 Tout comme en décimal, on définit un ordre de comptage pour les codes binaires et hexadécimaux. Le code Gray (ou binaire réfléchi) a été développé pour fabriquer les tableaux de Karnaugh et pour éviter les aléas de fonctionnement des machines. Aléa de fonctionnement : Un aléa de fonctionnement c’est quand la technologie du capteur fait que le signal renvoyé par celui-ci risque de ne pas correspondre au signal attendu. 000 000 111 100 110 101 101 111 7 Codeur de position 0 6 1 5 2 4 100 110 3 011 010 d2 d1 d0 0 0 1 0 0 1 010 011 Roue entraînée en rotation d0 d1 d2 Codage de la position sur 3 fils Codage de la position d’un axe sur trois fils Binaire naturel Code Gray De 1 à 2, d0 et d1 changent en même temps d’état. Or rien ne dit que techniquement on puisse les faire changer en même temps. => On passera par un état faux 001-> 011 -> 010 ou 001 -> 000-> 010 => Pour éviter cela, on utilise le code Gray 1 seul fil à la fois change d’état. Lycée CHEVALIER D’EON – TONNERRE – BTS Assistance Technique Ingénieur Cours d’Automatisme Informatique Industrielle M. GRACZYK Cours d’Automatisme Informatique Industrielle : Numération Page 4 sur 5 Conversion : Comme on vient de le voir, les codes ont une correspondance ainsi 5 en décimal donne 101 en binaire. IV- Comment convertir des nombres plus élevés ? Comment convertir du décimal en binaire ? On fait des divisions successives par 2 (binaire). Exemple : 10d → ?b 10 0 |2 |5 1 |2 |2 0 |2 |1 10d →1010b Exercice : convertissez 238d en binaire. 238d →1110 1110b Comment convertir du binaire en décimal ? De la même manière qu’en décimal 351 c’est 3*102+5*101+1*100. Base 10 Poids Rang du chiffre Le premier chiffre du code binaire est appelé MSB (Most Signifiant Bit) puisqu’il a le poids le plus fort pour le convertir (22), et le dernier est appelé LSB (Less Signifiant Bit) puisqu’il a le poids le plus faible (20). Exemple : 1 22 1b 20 → ?d → 5d Exercice : convertissez 11110b en décimal. Poids 24 23 22 21 20 Chiffre1 1 1 1 0 4 3 2 1 1*2 + 1*2 + 1*2 + 1*2 + 0*20 = 30d 11110b → 30d Comment convertir de l’hexadécimal en binaire ? Rien de plus simple. Chaque chiffre Exemple : 6 hexa correspond 4 chiffres binaires. 0110 Un bit = 1 fil codé en binaire Un octet est formé de 8bits de 2 chiffres codés en hexadécimal Un mot (word) = 2 octets (soit 16 bits) Un long mot (Long) = 2 mots soit 32 bits 0 21 C F 1100 1111 h→ ?b b 6CFh → 0110 1100 1111b Exercice : Convertissez 1FA6h en binaire. 1 F A 6h 0001 1111 1010 0110b 1FA6h → 0001 1111 1010 0110b Comment convertir de l’hexadécimal en décimal ? De la même manière qu’en décimal Exemple : C4F2Bh → ?d avec les multiplications pondérées. Poids 164 163 162 161 160 Chiffre C (12) 4 F (15) 2 B (11) 12.164 +4*163 +15*162 +2*161 + 11*160 =806699d C4F2Bh → 806699d Lycée CHEVALIER D’EON – TONNERRE – BTS Assistance Technique Ingénieur Cours d’Automatisme Informatique Industrielle M. GRACZYK Cours d’Automatisme Informatique Industrielle : Numération Page 5 sur 5 Comment convertir du décimal en hexadécimal ? De la même manière que pour revenir Exemple : 8204d → ?h du décimal au binaire, on utilise des divi8204 |16 sions successives par 16. 12 (C) | 512 |16 Quand le résultat dépasse 9, on prend 0 |32 |16 le code hexadécimal qui correspond (A, B, 0 |2 C, D, E, ou F). 8204d → 2 0 0 Ch Comment obtenir un code binaire négatif pour faire une soustraction ? Pour cela, on utilise le code compléExemple : Donner le code binaire sur 8 bits de -11. ment à 2. Il s’agit d’un code ou le nombre de bits est déterminé au départ. - V- on prend le chiffre positif, on le converti en binaire ; on le complémente (0 devient 1 et 1 devient 0) ; puis on ajoute 1 au résultat. 11d = 0000 1011b 0000 1011b → 1111 0100b 1111 0100b + 0000 0001b = 1111 0101b -11d→1111 0101b Exercices Addition binaire : 1 + 1 égal 0 plus une retenue : retenue 1 0 1 + 0 1 1 0 1a - Que vaut 12 décimal en binaire ? 1100 1b- Détaillez le calcul permettant de convertir 125 décimal en binaire. 125 => 111 1101 1c- Effectuez l’opération décimale suivante en détaillant le calcul et les retenues : 1 2 5 + 0 1 2 1 3 7 1d- De la même façon, effectuez l’opération binaire suivante qui correspond à 235 + 8 en détaillant les retenues et en n’oubliant pas que vous n’avez que 2 signes différents (0 et 1) à votre disposition : 1 0 1 1 1 1 1 0 1 + 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 1 1e- Convertissez en décimal le résultat de cette opération et vérifiez qu’il est bien égal à 125 + 12 . 27 26 25 24 2 3 22 21 20 1 0 0 0 1 0 0 1 =>137 = 125+12 2- Retrancher 126 à 312 en faisant l’opération en binaire sur 16 bits 312 = > 0 0 0 Lycée CHEVALIER D’EON – TONNERRE – BTS Assistance Technique Ingénieur Cours d’Automatisme Informatique Industrielle M. GRACZYK