« 1.8. La numération binaire » Les automates programmables « 1.8. La numération binaire » A T Training On Line JMD A AUTOMATIQUE : SYST. DISCRET CO1
10 0= 1 c’est le digit des unités Le système décimal L’écriture des nombres se fait à l’aide de 10 symboles ordonnés (ou « DIGIT » en anglais) ; ce sont les chiffres arabes : 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 Le nombre de symboles utilisés s’appelle la base du système de numération. Nous comptons en base 10, notre système est dit décimal. Lorsque le nombre dépasse 9, il faut utiliser plus d’un symbole avec la règle suivante : Le digit le plus à droite a le plus faible poids (ou valeur) 10 0= 1 c’est le digit des unités Le digit suivant a un poids égal à 10 1 (=10) : les dizaines. Le digit suivant a un poids égal à 10 2 (=100) : les centaines, etc… Ainsi le nombre 1952 est l’écriture en base 10 de : MILLIER CENTAINE DIZAINE UNITE 10 000 1 000 100 10 1 10 4 10 3 10 2 10 1 10 0 9 5 2 1 millier + 9 centaines + 5 dizaines + 2 unités soit : 1 x 10 3 + 9 x 10 2 + 5 x 10 1 + 2 x 10 0 soit : 1 x 1000 + 9 x 100 + 5 x 10 + 2 x 1 soit : 1000 + 900 + 50 + 2 Les systèmes décimal, binaire, hexadécimal, sont ce qu'on appel des bases de numération. Les principes utilisés sont tous similaires. Seront définis: - la base (2, 10, 16, …), - les symboles utilisés pour représenter les informations, - les valeurs des poids de chaque colonne, - les techniques de conversions d'une base en une autre. JMD A AUTOMATIQUE : SYST. DISCRET CO1
Le système décimal Pour représenter les nombres fractionnaires (compris entre 0 et 1), on utilise la règle suivante : On place une virgule (ou un point chez les anglo-saxons) Le digit immédiatement à droite à le poids 10 –1 (0.1 ou 1/10) Le poids suivant est 10 –2 (0.01 ou 1/100). Etc. 1/10 1/100 1/1000 1/10000 10 -1 10 -2 10 -3 10 -4 1 3 2 Ainsi le nombre 0.132 est l’écriture en base 10 de : soit : 1 x 10 -1 + 3 x 10 -2 + 2 x 10 -1 soit : 1 x 0.1 + 3 x 0.01 + 2 x 0.001 soit : 0.1 + 0.03 + 0.002 Ces conventions d’écriture seront conservées dans les autres bases. En effet, la base 10 a été naturellement développée chez l’homme. Mais, dans certains cas, on peut préférer d’autres bases (exemples : la base 12 dont il reste des traces, le système sexagésimal, …). C’est le cas en particulier des machines (automate, ordinateur) qui fonctionnent à l’aide de systèmes logiques à deux états, que l’on code 0 et 1. JMD A AUTOMATIQUE : SYST. DISCRET CO1
Valeur numérique ou poids du bit Le système binaire 1. Nombres entiers 8 4 2 1 Valeur numérique ou poids du bit 23 22 21 20 Rang du bit 0x8 + 0x4 + 0x2 + 0x1 = 0 en base 10 0x8 + 0x4 + 0x2 + 1x1 = 1 0x8 + 0x4 + 1x2 + 0x1 = 2 0x8 + 0x4 + 1x2 + 1x1 = 3 0x8 + 1x4 + 0x2 + 0x1 = 4 0x8 + 1x4 + 0x2 + 1x1 = 5 0x8 + 1x4 + 1x2 + 0x1 = 6 0x8 + 1x4 + 1x2 + 1x1 = 7 1x8 + 0x4 + 0x2 + 0x1 = 8 1x8 + 0x4 + 0x2 + 1x1 = 9 1x8 + 0x4 + 1x2 + 0x1 = 10 1x8 + 0x4 + 1x2 + 1x1 = 11 1x8 + 1x4 + 0x2 + 0x1 = 12 1x8 + 1x4 + 0x2 + 1x1 = 13 1x8 + 1x4 + 1x2 + 0x1 = 14 1x8 + 1x4 + 1x2 + 1x1 = 15 On dispose de deux symboles : 0 et 1. La base est 2. Le digit binaire s’appelle le BIT (Binary digit). Le bit de poids le plus faible est le LSB (Least Significant Bit). Le bit de poids le plus fort est le MSB (Most Significant Bit). Il est utile de connaître la valeur décimale des poids binaires. JMD A AUTOMATIQUE : SYST. DISCRET CO1
Le système binaire A noter que avant 1998 : - 1 kilo-octet (ko ou Ko) = 1024 octets. - 1 méga-octet (Mo) = 1024 ko = 1 048 576 octets. - 1 giga-octet (Go) = 230 octets = 1024 Mo = 1 073 741 824 octets. Depuis 1998, et suivant la Commission électrotechnique internationale : - 1 kilooctet (ko) = 103 = 1 000 octets - 1 mégaoctet (Mo) = 106 octets = 1 000 Ko = 1 000 000 octets - 1 gigaoctet (Go) = 109 octets = 1 000 Mo = 1 000 000 000 octets La nouvelle définition des valeurs du kilo octet, du Méga octet, entre difficilement dans les mœurs, et permettent des confusion dans les documentations techniques ou les "prospectus de vente". JMD A AUTOMATIQUE : SYST. DISCRET CO1
Le système binaire 2. Les nombres fractionnaires Exemple : 0.1101 en base 2, représente 1 x 2 –1 + 1 x 2 –2 + 0 x 2 –3 + 1 x 2 – 4 1 x 0.5 + 1 x 0.25 + 0 x 0.125 + 1 x 0.0625 = 0.9375 en base 10 Ce type de représentation n'est pas utilisées dans les API. JMD A AUTOMATIQUE : SYST. DISCRET CO1
Les mots Les machines utilisant le système binaire acceptent un nombre donné de bits, par exemple 4 - 8 - 16 - … Ce nombre de bit détermine ce que l’on appelle le format. Ces bits réunis ensemble forment un mot. Suivant le système, on parlera de mot, registre, mémoire mot, Word. En général, les mots ont donc un format bien déterminé : - un mot de 4 bits s’appelle un QUARTET, - un mot de 8 bits s’appelle un OCTET (ou BYTE en anglais), - un mot de 16 bits s’appelle un double octet, - un mot de 32 bits s’appelle un mot double. La notion de mots définie la puissance de calcul des processeurs des automates, des ordinateurs et des consoles de jeu. JMD A AUTOMATIQUE : SYST. DISCRET CO1
Les mots Format Nom (en anglais) Valeur maxi 4 bits Quartet 0 à 15 En général, les mots ont donc un format (nombre de bits) bien déterminé et ils leur peuvent représenter une valeur numérique maximum Format Nom (en anglais) Valeur maxi 4 bits Quartet 0 à 15 8 bits Octet (Byte) 0 à 255 16 bits Mot ou double octet (Word) 0 à 32767 32 bits Mot double (Double word) 0 à 4294967295 Ces valeurs expliquen les limites de calcul des certains automates. JMD A AUTOMATIQUE : SYST. DISCRET CO1
La conversion binaire décimale L’homme utilisant la base 10 et la machine la base 2, il est nécessaire de pouvoir convertir l’une en l’autre. On fait la somme des poids correspondants aux bits à 1, le bit le plus à droite étant le bit de poids faible (LSB), de valeur 1. Exemples : 0 1 1 0 1 0 0 1 = 64 + 32 + 8 + 1 = 105 en base 10 1 1 1 1 1 1 1 1 = 128 + 64 + 32 + 16 + 8 + 4 +2 + 1 = 255 en base 10 Pour éviter les confusion lors de l'écriture du résultat d'une conversion, il est nécessaire d'indiquer la base de numération. Par exemple 01101001 en base 2 = 105 en base 10. Cette notation de la base peut se faire, en annotant le nombre avec un indice . Par exemple 011010012 = 10510 JMD A AUTOMATIQUE : SYST. DISCRET CO1
La conversion décimale binaire 1. Méthode de la division On divise le nombre, puis les quotients par 2, jusqu’à obtenir un résultat nul. Puis on écrit les restes (inférieurs à la base) de gauche à droite. Cette écriture est le résultat de la conversion. Exemple : 35 en base 10 = ? en base 2 (35) 10 = (100011) 2 Cette méthode est programmable. JMD A AUTOMATIQUE : SYST. DISCRET CO1
Conversion décimale binaire 2. Méthode de la soustraction On peut aussi soustraire au nombre décimal le plus gros poids binaire possible : Exemple : 35 en base 10 = ? en base 2 25 24 26 22 21 20 32 16 8 4 2 1 35 3 35 32 2 5 = 3 -2 21 = 1 20 (35)10 = (100011)2 La calculatrice de Windows, lorsqu'on la configure en affichage scientifique, permet de réaliser des conversions entre les bases 2, 8, 10 et 16 (en utilisant les boutons radio Bin, Oct, De cet Hex. Par contre le format du mot binaire n'est pas sélectable (64 bits maxi en Windows XP, par exemple). JMD A AUTOMATIQUE : SYST. DISCRET CO1
Pourquoi toutes ces bases L’homme à l’habitude de manipuler des nombres en base 10. La machine ne peut accepter que des nombres en base 2. Il sera donc nécessaire de convertir d’une base à l’autre. Pour exprimer un nombre, il faut en moyenne 3.3 fois plus de digits en binaire qu’en décimal. Pour exprimer des chiffres décimaux de l’ordre de la centaine ou plus, il faut un grand nombre de bits et la conversion devient fastidieuse. Pour rendre cette conversion plus facile et l’écriture du nombre plus courte, on utilisera des codes : OCTAL - HEXADECIMAL - … JMD A AUTOMATIQUE : SYST. DISCRET CO1
Les nombres réels et signés Dans tout ce qui précède les nombres binaires expriment des valeurs positives et entières. Mais bien souvent ont à besoin de représenter - des nombres négatifs (donc signés) : par exemple des températures ou des résultats de calcul - des nombres réels (à virgule) : pour augmenter la précision de calcul Pour cela, il existe plusieurs solutions, nous n'étudierons que les 2 plus utilisées dans les automates programmables :nés - La méthode du complément à 2 pour représenter les nombres entiers signés, - La méthode de la virgule flottant pour les nombres réels. JMD A AUTOMATIQUE : SYST. DISCRET CO1
Le binaire signé A noter que avant 1998 : - 1 kilo-octet (ko ou Ko) = 1024 octets. - 1 méga-octet (Mo) = 1024 ko = 1 048 576 octets. - 1 giga-octet (Go) = 230 octets = 1024 Mo = 1 073 741 824 octets. Depuis 1998, et suivant la Commission électrotechnique internationale : - 1 kilooctet (ko) = 103 = 1 000 octets - 1 mégaoctet (Mo) = 106 octets = 1 000 Ko = 1 000 000 octets - 1 gigaoctet (Go) = 109 octets = 1 000 Mo = 1 000 000 000 octets La nouvelle définition des valeurs du kilo octet, du Méga octet, entre difficilement dans les mœurs, et permettent des confusion dans les documentations techniques ou les "prospectus de vente". JMD A AUTOMATIQUE : SYST. DISCRET CO1
Le binaire signé - Le complément 2 Par rapport au binaire pur le bit de poids fort (MSB) devient le bit de signe et possède une valeur négative. Si ce bit = 0 le nombre est positif Si ce bit = 1 le nombre est négatif (le total de tous les autres bits positifs = 32767) La notion de mts définie la puissance de calcul des processeurs des automates, des ordinateurs et des consoles de jeu. JMD A AUTOMATIQUE : SYST. DISCRET CO1
Le binaire signé - Le complément 2 Pour chaque format de mot, il y aura donc des limites de représentation.. Format Nom (en anglais) Valeur maxi 4 bits Quartet -7 à +7 8 bits Octet (Byte) -128 à +127 16 bits Mot ou double octet (Word) -32768 à +32767 32 bits Mot double (Double word) -2 147 483 648 à +2 147 483 647 Tous les automates programmables actuels peuvent calculer en binaire signé, mais certains sont limités à l'utilisatin de mots de 16 bits. JMD A AUTOMATIQUE : SYST. DISCRET CO1
Le complément 2 La méthode du complément à 2 est le principe qui permet de passer d'un nombre positif à un nombre négatif et réciproquement. Exemple sur un mot de 4 bits : Explications 8 4 2 1 Soit la valeur 5 Complément 1 (on inverse les bits) On ajoute 1 pour obtenir le complément à 2 Complément à 2 Calcul de la valeur -8 + 2 + 1 = - 5 JMD A AUTOMATIQUE : SYST. DISCRET CO1
La virgule flottante Correspond à la notation scientifique de certaines calculatrices. Elle se présente sous la forme d'une mantisse et d'une puissance de 10. N = M x 10 E Exemple : - 12,5 = - 0,125 x 102 N = nombre M = Mantisse E = Exposant La virgule flottante se présente sous la forme d'une mantisse et d'une puissance de 2. N = M x 2 E Exemple : - 12,5 = - 0,125 x 102 Limites de représentation : -1 x2 +128 <= N <= +1 x 2 +127 Codée sur 32 bits : 24 pour la mantisse, 8 pour l'exposant JMD A AUTOMATIQUE : SYST. DISCRET CO1
La virgule flottante - 5 10 0,625 x 2 3 -27 26 25 24 23 22 21 20 1 Exemple de représentation du nombre -5 -27 26 25 24 23 22 21 20 1 E = 3 -20 2-1 2-2 2-3 2-4 2-22 2-23 1 M = 0,625 8 bits - 5 10 0,625 x 2 3 24 bits JMD A AUTOMATIQUE : SYST. DISCRET CO1