Unit 2 Reprsentation interne des informations Objectifs la
Unité 2: Représentation interne des informations Objectifs: À la fin de cette unité, - vous saurez comment les caractères et les nombres entiers positifs et négatifs sont représentés dans la mémoire d'un ordinateur. - vous saurez comment on effectue les opérations arithmétiques addition et soustraction avec des entiers binaires. - vous saurez comment effectuer la multiplication et la division binaire Pour y arriver, vous devrez maîtriser les objectifs suivants : - effectuer ces opérations arithmétiques sur des entiers dans n'importe quelle base, en particulier en binaire et en hexadécimal; ©Pierre Marchand, 2001 32
Unité 2: Représentation interne des informations 3. 1 Introduction Types d’information traitées par l’ordinateur : Nombres, instructions, images, séquences d’images animées, sons, etc. , toujours représentées sous forme binaire. Une information élémentaire correspond donc à un chiffre binaire 0 ou 1 appelé bit. Avantages du binaire : • facile à réaliser techniquement à l’aide de bistables (systèmes à deux états d’équilibre). • opérations fondamentales simples à effectuer, sous forme de circuits logiques. ©Pierre Marchand, 2001 33
Unité 2: Représentation interne des informations 3. 1 Introduction Types d’information traités : instructions et données. • Les instructions sont écrites en langage machine et représentent les opérations (e. g. addition, multiplication, etc. ) effectuées par l’ordinateur. Elles sont composées de plusieurs champs : - Le code de l’opération à effectuer (opcode) - Les opérandes impliqués dans l’opération. • Les données sont les opérandes sur lesquelles portent les opérations. On distingue les données numériques et les données non numériques (e. g. texte). ©Pierre Marchand, 2001 34
Unité 2: Représentation interne des informations Le binaire 0 1 10 3 4 101 16 7 8 9 ©Pierre Marchand, 2001 0 1 12 11 100 15 1 0000 111 1000 1001 10 11 1100 13 14 1111 255 17 18 19 20 24 35 1010 31 1 1111 1011 32 10 0000 63 11 1101 64 100 0000 1110 127 1111 128 1000 0000 6 1111 1 0001 256 1 0000 1 0010 1 0011 1 0100 1 1000 2 5 110
Unité 2: Représentation interne des informations Le binaire En décimal, avec n chiffres, on obtient 10 n combinaisons possibles, i. e. on peut compter de 0 à 10 n-1. Exemple : Avec 3 chiffres, on a 103 = 1000 combinaisons possibles et on peut compter de 000 à 999. En binaire, avec n bits, on obtient 2 n combinaisons possibles, i. e. on peut compter de 0 à 2 n-1 Exemple : avec 8 bits, on a 28 = 256 combinaisons possibles et on peut compter de 0000 à 1111, i. e. de 0 à 255. ©Pierre Marchand, 2001 36
Unité 2: Représentation interne des informations 3. 2 Données non numériques ASCII 7 bits ->128 caractères : 26 lettres majuscules A - Z 26 lettres minuscule a - z 10 chiffres 0 à 9 33 caractères de ponctuation sp, ! ” #$%& ’ ()*+, -. /< = >? @ [ ] ^_` { | } ~ 33 caractères de contrôle : null, etx, bel, bs, ht, lf, vt, ff, cr, …, del ©Pierre Marchand, 2001 37
Unité 2: Représentation interne des informations 3. 2 Données non numériques ASCII étendu Aussi connu sous le nom de ISO 8859 -1 ou ISO latin 1. Définit les caractères ASCII 128 à 256 8 bits -> 256 caractères internationaux caractères semi-graphiques Dans les deux cas, les caractères sont représentés dans l’ordinateur par un nombre binaire de 8 bits indiquant l’indice i. e. la position du caractère dans la table ASCII. Dans le cas de l ’ASCII simple, le nombre doit être inférieur à 128. ©Pierre Marchand, 2001 38
Unité 2: Représentation interne des informations 3. 2 Données non numériques Par exemple : ‘A’ = 6510 = 0100 00012 ‘B’ = 6610 = 0100 0010. . . ‘a’ = 9710 = 0110 0101 ‘ ‘ = 3210 = 0010 0000 ‘ 0’ = 4810 = 0011 0000 ‘ 1’ = 4910 = 0011 0001 ‘ 2’ = 5010 = 0011 0010 … ‘ 9’ = 5710 = 0011 1001 ©Pierre Marchand, 2001 39
Unité 2: Représentation interne des informations 3. 2 Données non numériques Les codes ISO 8859 -1 à 8859 -11 définissent les caractères entre 128 et 255 pour couvrir les besoins de la majorité des pays d’Europe. UNICODE 16 bits -> 65 536 caractères Code qui se veut universel et qui contient, en plus de tous les caractères européens, 42 000 caractères asiatiques. Le code ASCII est contenu dans les 128 premiers caractères d’UNICODE est supporté par Windows NT, Windows 2000, Java, et certains systèmes UNIX, Mac. OS > 8. 5, etc. ©Pierre Marchand, 2001 40
Unité 2: Représentation interne des informations 3. 2 Données non numériques ISO/IEC 10646 Deux formats : 16 bits (UCS-2) ou 32 bits (UCS-4) UCS-2 équivalent à UNICODE 2. 0 UCS-4 inclut : – Caractères musicaux – Symboles mathématiques – Écritures anciennes telles que les hiéroglyphes. ©Pierre Marchand, 2001 41
Unité 2: Représentation interne des informations 3. 3 Données numériques 3. 3. 1 Entiers positifs ou nuls 3. 3. 2 Entiers négatifs ©Pierre Marchand, 2001 42
Unité 2: Représentation interne des informations 3. 3 Données numériques 3. 3. 1 Entiers positifs ou nuls Systèmes de numération Représentation pondérée d’un nombre N dans une base B : N = an. Bn + an-1 Bn-1 + … + a 1 B + a 0 = où an = 0, 1, … B-1 Les bases B les plus usitées sont : B = 10, décimal B = 2, binaire B = 16, hexadécimal B = 8, octal ©Pierre Marchand, 2001 43
Unité 2: Représentation interne des informations 3. 3 Données numériques 3. 3. 1 Entiers positifs ou nuls Systèmes de numération Représentation pondérée dans une base B Exemples : 154210 = 1 103 + 5 102 + 4 101 + 2 100 15428 = 1 83 + 5 82 + 4 81 + 2 80 = 86610 1 01102 = 1 24 + 0 23 + 1 22 + 1 21 + 0 20 = 2210 ©Pierre Marchand, 2001 44
Unité 2: Représentation interne des informations 3. 3 Données numériques 3. 3. 1 Entiers positifs ou nuls Décimal Binaire Octal 0 0 1 1 2 10 3 11 4 100 5 101 6 110 7 111 8 1000 9 1001 ©Pierre Marchand, 2001 45 Hexadécimal 0 1 2 3 4 5 6 7 10 11 0 1 2 3 4 5 6 7 8 9
Unité 2: Représentation interne des informations 3. 3 Données numériques 3. 3. 1 Entiers positifs ou nuls Décimal Binaire Octal 10 1010 11 1011 12 1100 13 1101 14 1110 15 1111 16 1 0000 17 1 0001 18 1 0010 19 1 0011 ©Pierre Marchand, 2001 46 Hexadécimal 12 13 14 15 16 17 20 21 22 23 A B C D E F 10 11 12 13
Unité 2: Représentation interne des informations 3. 3 Données numériques 3. 3. 1 Entiers positifs ou nuls Remarques 10 B = B quel que soit B : 102 = 2, 107 = 7, 108 = 8, 1016 = 1610 Ajouter un 0 à droite (décalage à gauche) = multiplication par B Enlever le chiffre de droite (décalage à droite ) = division entière par B ©Pierre Marchand, 2001 47
Unité 2: Représentation interne des informations 3. 3 Données numériques 3. 3. 1 Entiers positifs ou nuls Représentation hexadécimale Comme 16 = 24, on peut toujours représenter un nombre binaire en regroupant les bits en groupes de 4 et en écrivant la notation hexadécimale 0 - F pour chacun de ces groupes : Exemple : 111 1100 11112 = 7 CF 16 Pour indiquer qu’un nombre est en hexadécimal, on utilise le posfixe h ou H, ou le préfixe $, ou encore, en notation C/C++, le préfixe 0 x. 7 CFh ou 7 CFH, $7 CF, 0 x 7 CF ©Pierre Marchand, 2001 48
Unité 2: Représentation interne des informations 3. 3 Données numériques Entiers positifs ou nuls Addition binaire 1 11 1 190 1011 1110 +141 +1000 1101 331 1 0100 1011 1 173 +44 217 ©Pierre Marchand, 2001 1 1010 1101 +0010 1101 1001 49
Unité 2: Représentation interne des informations 3. 3 Données numériques Entiers positifs ou nuls Addition hexadécimale 1 1 190 BE +141 +8 D 331 1 4 B 173 +44 217 ©Pierre Marchand, 2001 AD +2 C D 9 50
Unité 2: Représentation interne des informations 3. 3 Données numériques Entiers positifs ou nuls Soustraction binaire à la main 1 1 10110100 - 10000111 00101101 Quand le chiffre du bas est supérieur à celui du haut, on emprunte 2 au chiffre de gauche suivant et on ajoute ce 2 au chiffre du haut. On fait la soustraction. L’emprunt soustrait 1 au chiffre de gauche. Voyez l’animation sur le site Web: http: //www. ift. ulaval. ca/~marchand/ift 17583/Arithm. html ©Pierre Marchand, 2001 51
Unité 2: Représentation interne des informations 3. 3 Données numériques 3. 3. 2 Entiers négatifs Notation signe et grandeur Sur 8 bits, on pourrait garder 1 bit pour le signe et 7 bits pour la grandeur. C’est la notation signe et grandeur que nous utilisons en arithmétique ordinaire. signe grandeur Par exemple, avec la notation signe et grandeur sur 8 bits, on aurait : +5 = 0000 0101 et -5 = 1000 0101 ©Pierre Marchand, 2001 52
Unité 2: Représentation interne des informations 3. 3 Données numériques 3. 3. 2 Entiers négatifs Compléments à 1 et à 2 Une autre possibilité est d’utiliser le complément à 1 ou le complément à 2. Complément à 1 sur 8 bits : Le complément à 1 est obtenu en inversant tous les bits du nombre : +5 = 0000 0101 et -5 = 1111 1010 Dans le cas du complément à 1, +5 + (-5) = 1111 = -0 ©Pierre Marchand, 2001 53
Unité 2: Représentation interne des informations 3. 3 Données numériques 3. 3. 2 Entiers négatifs Complément à 2 : Le complément à 2 est obtenu en additionnant 1 au complément à 1 : +5 = 0000 0101 et -5 = 1111 1011 (1111 1010 + 1) Dans le cas du complément à 2, +5 + (-5) = 0000. Les micro-ordinateurs actuels utilisent tous le complément à 2 sur 8, 16 ou 32 bits pour représenter les nombres négatifs. ©Pierre Marchand, 2001 54
Unité 2: Représentation interne des informations 3. 3 Données numériques 3. 3. 2 Entiers négatifs La représentation en complément à 2 va de -2 n-1 à 2 n-1 -1 Avec des motifs de 8 bits : Nombres positifs 0000 à 0111 1111 ou encore 0016 à 7 F 16 = 0 à 127 Nombres négatifs 1000 0000 à 1111 ou encore 8016 à FF 16 = -128 à -1 Avec des motifs de 16 bits : Nombres positifs 0000 à 7 FFF = 0 à 32767 Nombres négatifs 8000 à FFFF = -32768 à -1 ©Pierre Marchand, 2001 55
Unité 2: Représentation interne des informations 3. 3 Données numériques 3. 3. 2 Entiers négatifs Avec des motifs de 32 bits : Nombres positifs 000016 à 7 FFFFFFF 16 = 0 à 2 147 483 647 Nombres négatifs 8000000016 à FFFF 16 = -2 147 483 648 à -1 ©Pierre Marchand, 2001 56
Unité 2: Représentation interne des informations 3. 3 Données numériques 3. 3. 2 Entiers négatifs Complément à 10 Pour illustrer le principe du complément à 2, on pourrait faire la même chose en base 10. Sur 4 digits, les nombres 0 à 4999 seraient positifs et les nombres 5000 à 9999 seraient négatifs. Le complément à 10 d’un nombre N s’obtiendrait en faisant 10000 - N ou 9999 - N + 1 : Ainsi, le complément à 10 de 1000 serait 9000, et 1000 + 9000 = (1)0000. ©Pierre Marchand, 2001 57
Unité 2: Représentation interne des informations 3. 3 Données numériques 3. 3. 2 Entiers négatifs Complément à 16 De la même façon, en notation hexadécimale, on peut utiliser le complément à 16 pour représenter les nombres négatifs. Sur 8 bits, on l’obtient en soustrayant le nombre de FF 16 et en ajoutant 1 au résultat : 5 = 0516 -5 = FF 16 - 0516 + 0116 = FA 16 + 0116 = FB 16 = 1111 10112 Remarquez que c’est le même résultat qu’en complément à 2. Sur 16 bits : 5 = 000516 -5 = FFFF 16 - 000516 + 000116 = FFFB 16 ©Pierre Marchand, 2001 58
Unité 2: Représentation interne des informations 3. 3 Données numériques 3. 3. 2 Entiers négatifs Soustraction L’ordinateur effectue la soustraction en additionnant le complément à 2 sur des motifs de 8 bits, 16 bits, 32 bits, etc. 5 - 4 = 5 + (-4) retenue 4 - 5 = 4 + (-5) ©Pierre Marchand, 2001 1 1111 1 0000 0101 +1111 1100 (1) 0000 0001 0000 0100 +1111 1011 1111 59 0000 0101 -0000 0100 0001 ou ou emprunt 0000 0100 -0000 0101 (1)1111
Unité 2: Représentation interne des informations 3. 3 Données numériques 3. 3. 2 Entiers négatifs Soustraction en hexadécimal avec ou sans le complément à 16 : Sur 16 bits : 5 - 4 = 5 + (-4) 1 1 11 0005 +FFFC (1)0001 retenue 0005 -0004 0001 ou 4 - 5 = 4 + (-5) 0004 +FFFB FFFF ©Pierre Marchand, 2001 60 1 ou emprunt 1 11 0004 -0005 (1)FFFF
Unité 2: Représentation interne des informations 3. 3 Données numériques 3. 3. 2 Entiers négatifs Attention! Pour les nombres dont le bit le plus significatif est 1, il y a deux interprétations possibles. Par exemple, sur 8 bits, 1001 0000 peut représenter +144 si on le considère comme un nombre non signé ou -112 si on le considère comme un nombre en complément à 2. C’est lors de la déclaration d’une variable en mémoire qu’on détermine si le processeur doit la traiter comme signée ou non signée. char a; // a est considéré comme signé en complément à 2 unsigned char b; // a est considéré comme non signé ©Pierre Marchand, 2001 61
Unité 3: Représentation interne des informations 3. 2 Données non numériques Endianisme Quand un nombre est représenté sur plusieurs octets, il peut être écrit en mémoire de deux façons : L’octet de poids fort à l’adresse basse : big-endian L’octet de poids faible à l’adresse basse : little-endian Par exemple, le nombre décimal 62 090 s’écrit F 28 A en hexadécimal. En little-endian, la mémoire contiendra 8 A F 2, tandis qu’en bigendian, elle contiendra F 2 8 A ©Pierre Marchand, 2001 62
Unité 3: Représentation interne des informations 3. 3 Données numériques 3. 3. 1 Entiers positifs ou nuls Multiplication La multiplication binaire s’effectue comme la multiplication décimale ordinaire, mais est beaucoup plus simple, puisqu’il n’y a que des 1 et des 0. 1 1011 11011 00000 11011 101011111 ©Pierre Marchand, 2001 63
Unité 3: Représentation interne des informations 3. 3 Données numériques 3. 3. 1 Entiers positifs ou nuls Multiplication On peut également effectuer cette opération en hexadécimal : 1 B 0 D 1 8 F 0 D 15 F On utilise à cette fin la table de multiplication hexadécimale du supplément (Appendice 5). ©Pierre Marchand, 2001 64
Unité 3: Représentation interne des informations 3. 3 Données numériques 3. 3. 1 Entiers positifs ou nuls Division La division binaire s’effectue comme la division décimale ordinaire, mais elle est beaucoup plus simple, puisque les facteurs sont 1 ou 0. 101111 / 0100 1 0011 0 111 100 1 0111 100 1 011 Résultat : 10112, reste 00112 ©Pierre Marchand, 2001 65
Unité 3: Représentation interne des informations 3. 3 Données numériques 3. 3. 1 Entiers positifs ou nuls Division L’ordinateur effectue cette division au moyen de décalages d’un registre à l’autre. Pour simplifier, utilisons des registres de 6 bits. Initialement le registre R contient des 0 et le registre D contient le dividende. R D 0 0 0 1 0 1 1 On décale D vers R un bit à la fois. Chaque fois que R ≥ Diviseur, on soustrait le diviseur de R et on met 1 à la suite du quotient, sinon, on met 0 à la suite du quotient. On effectue 6 décalages de D. À la fin, R contient le reste. Voyez l’animation sur le site du cours : http: //www. ift. ulaval. ca/~marchand/ift 17583/Arithm. html ©Pierre Marchand, 2001 66
Unité 3: Représentation interne des informations 3. 3 Données numériques 3. 3. 1 Entiers positifs ou nuls Division (101111 / 100) sur 6 bits R D Décalage no. 0 0 0 1 0 1 1 0 0 0 1 1 1 1 0 Q = 0 1 0 1 1 0 0 Q = 0 0 2 0 0 0 1 1 1 1 0 0 0 Q = 0 0 0 1 0 0 0 0 1 1 0 0 Q = 0 0 0 1 1 1 1 0 0 0 Q = 0 0 0 1 0 5 0 0 0 1 1 0 0 0 1 1 1 0 0 0 Q = 0 0 0 1 6 0 0 0 1 1 Q = 0 0 0 1 1 7 ©Pierre Marchand, 2001 67 3 4
Unité 3: Représentation interne des informations 3. 3 Données numériques 3. 3. 1 Entiers positifs ou nuls Division On peut également effectuer la division binaire en hexadécimal. Il faut ici aussi utiliser la table de multiplication hexadécimale. Exemple : 7 CB / 1 C 70 47 0 CB C 4 07 Réponse : 7 CB 16 / 1 C 16 = 4716 reste 7. ©Pierre Marchand, 2001 68
- Slides: 37