Architecture des ordinateurs Béat Hirsbrunner S2 - 25 octobre 2006 Annexe A: Numérotation binaire A.1 A.2 A.3 A.4 A.5 Nombres en précision finie Représentation des nombres Conversion d’une base à une autre Nombres binaires négatifs Arithmétique binaire B.1 Principes des nombres en virgules flottantes 1 A.1 Nombres en précision finie • Les ordinateurs utilisent une autre arithmétique que les humains • • • • • • • Les physiciens disent: Il y a 10 puissance 78 électrons dans l’univers… Les chimistes disent : … Les philosophes disent : … Les mathématiciens disent : … Les reporters sportifs disent : … Les ordinateurs disent : j’aime les 0 et 1 et je préfère travailler avec des nombres contenant un nombre fini de chiffres (8 bits, 16 bits, …) Exemple: Ensemble des entiers positifs avec 3 chiffres décimaux L’ensemble comprend exactement 100 éléments: 000, 001, …, 999 • Certains nombres ne peuvent pas être représentés: • Les nombres supérieurs à 999 Les nombres négatifs … • L’arithmétique n’est pas fermée (au regard des opérations +, - *): 600 + 600 = 1200 (trop grand) 003 - 005 = -2 (négatif) … • L’algèbre des nombres en précision finie est différente de l’algèbre normale: a + (b - c) = (a + b) - c (avec a=700, b=400, c=300: a+b est trop grand, mais pas a+(b-c)) 2 A.2 Représentation des nombres (1/3) • Base naturelle pour les humains : 10 • Base naturelle pour les ordinateurs d’aujourd’hui: 2, 8, 16, …: 01 01234567 0123456789ABCDEF … 3 A.2 Représentation des nombres (2/3) 4 A.2 Représentation des nombres (3/3) 5 A.3 Conversion d’une base à une autre (1/2) 6 A.3 Conversion d’une base à une autre (2/2) 7 A.4 Nombres binaires négatifs (1/5) 1. Valeur signée (Signed Magnitude) • 2. Le premier bit représente le signe (0=positif, 1=négatif) Complément à un (one’s complement) • • Le premier bit représente le signe (0=positif, 1=négatif) Tous les 1 sont remplacés par des 0 et tous les 0 par des 1 3. Complément à deux (two’s complement) 4. Le premier bit représente le signe (0=positif, 1=négatif) • Tous les 1 sont remplacés par des 0 et tous les 0 par des 1 • Puis on rajoute 1 au résultat Excédent 2m-1 (excess 2m-1) • • On additionne 2m-1 aux nombres à m bits Remarques • • • • (1) et (2) ont deux représentations différentes pour le zéro ! (3) et (4) n’ont pas le même nombre de chiffres positifs et négatifs ! (3) et (4) ne se différencient que sur le premier bit ! Pour toutes les représentations, le signe est encodé dans le premier bit ! 8 A.4 Nombres binaires négatifs (2/5) 0 1 2 3 -0 -1 -2 -3 000 001 010 011 100 101 110 111 Valeur signée 0 1 2 3 -3 -2 -1 -0 000 001 010 011 100 101 110 111 Complément à un 9 A.4 Nombres binaires négatifs (3/5) 000 111 -1 110 001 0 1 -2 2 -3 101 010 3 -4 011 100 Complément à 2 10 A.4 Nombres binaires négatifs (4/5) 000 111 -3 3 110 001 -4 2 -2 1 101 010 -1 0 011 100 Codage par excédent 2m-1 11 A.4 Nombres binaires négatifs (5/5) 12 A.5 Arithmétique binaire 13 A.5 Arithmétique binaire 14 B.1 Principes • Notation scientifique: e n = m * 10 , avec m = mantisse et e = exposant • Virgule flottante: 0 ≤ |m| < 1, par exemple 2002 s’écrit 0,2002 * 104 15