Unité 2: Représentation interne des informations

37
©Pierre Marchand, 2001 1 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'im-porte quelle base, en particulier en binaire et en hexadécimal;

description

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. - PowerPoint PPT Presentation

Transcript of Unité 2: Représentation interne des informations

Page 1: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 1

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'im-porte quelle base, en particulier en binaire et en hexadécimal;

Page 2: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 2

Unité 2: Représentation interne des informations

3.1 IntroductionTypes 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.

Page 3: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 3

Unité 2: Représentation interne des informations

3.1 IntroductionTypes 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).

Page 4: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 4

Unité 2: Représentation interne des informations

Le binaire

0 0 101010 31 1 1111

1 1 111011 32 10 0000 2 1012 1100 6311 1111

3 11 131101 64 100 0000

4 100 141110 127 111 1111 5101 15 1111 1281000 00006 110 16 1 00002551111 1111

7 111 171 0001 2561 0000 0000

8 1000 181 0010

9 1001 191 0011

201 0100

241 1000

Page 5: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 5

Unité 2: Représentation interne des informations

Le binaire

En décimal, avec n chiffres, on obtient 10n combinaisons possibles, i.e. on peut compter de 0 à 10n-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 2n combinaisons possibles, i.e. on peut compter de 0 à 2n-1

Exemple : avec 8 bits, on a 28 = 256 combinaisons possibles et on peut compter de 00000000 à 11111111, i.e. de 0 à 255.

Page 6: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 6

3.2 Données non numériquesASCII 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

Unité 2: Représentation interne des informations

Page 7: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 7

3.2 Données non numériquesASCII é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èrescaractè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.

Unité 2: Représentation interne des informations

Page 8: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 8

3.2 Données non numériquesPar 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

Unité 2: Représentation interne des informations

Page 9: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 9

3.2 Données non numériquesLes 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èresCode 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.

UNICODE est supporté par Windows NT, Windows 2000, Java, et certains systèmes UNIX, MacOS > 8.5, etc.

Unité 2: Représentation interne des informations

Page 10: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 10

3.2 Données non numériquesISO/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.

Unité 2: Représentation interne des informations

Page 11: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 11

3.3 Données numériques3.3.1 Entiers positifs ou nuls

3.3.2 Entiers négatifs

Unité 2: Représentation interne des informations

Page 12: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 12

3.3 Données numériques3.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 = anBn + an-1Bn-1 + … + a1B + a0 =

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

Unité 2: Représentation interne des informations

aiBi

i=0

n

Page 13: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 13

3.3 Données numériques

3.3.1 Entiers positifs ou nulsSystè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

Unité 2: Représentation interne des informations

Page 14: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 14

3.3 Données numériques3.3.1 Entiers positifs ou nuls

Décimal Binaire Octal Hexadécimal

0 0 0 0

1 1 1 1

2 10 2 2

3 11 3 3

4 100 4 4

5 101 5 5

6 110 6 6

7 111 7 7

8 1000 10 8

9 1001 11 9

Unité 2: Représentation interne des informations

Page 15: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 15

3.3 Données numériques3.3.1 Entiers positifs ou nuls

Décimal Binaire Octal Hexadécimal

10 1010 12 A

11 1011 13 B

12 1100 14 C

13 1101 15 D

14 1110 16 E

15 1111 17 F

16 1 0000 20 10

17 1 0001 21 11

18 1 0010 22 12

19 1 0011 23 13

Unité 2: Représentation interne des informations

Page 16: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 16

3.3 Données numériques3.3.1 Entiers positifs ou nuls

Remarques

10B = 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

Unité 2: Représentation interne des informations

Page 17: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 17

3.3 Données numériques3.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 = 7CF16

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 0x.

7CFh ou 7CFH, $7CF, 0x7CF

Unité 2: Représentation interne des informations

Page 18: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 18

3.3 Données numériquesEntiers positifs ou nuls

Addition binaire

Unité 2: Représentation interne des informations

190+141

331

1011 1110+1000 1101

1 0100 1011

111

173+44217

1010 1101+0010 1100

1101 1001

1111

111

Page 19: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 19

3.3 Données numériquesEntiers positifs ou nuls

Addition hexadécimale

Unité 2: Représentation interne des informations

190+141

331

BE+8D

1 4B

11

173+44217

AD+2C

D9

11

1

Page 20: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 20

3.3 Données numériquesEntiers positifs ou nuls

Soustraction binaire à la main 1 1 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/ift17583/Arithm.html

Unité 2: Représentation interne des informations

Page 21: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 21

3.3 Données numériques3.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.

Par exemple, avec la notation signe et grandeur sur 8 bits, on aurait :

+5 = 0000 0101

et -5 = 1000 0101

Unité 2: Représentation interne des informations

signegrandeur

Page 22: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 22

3.3 Données numériques3.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 1111 = -0

Unité 2: Représentation interne des informations

Page 23: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 23

3.3 Données numériques3.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 0000.

Les micro-ordinateurs actuels utilisent tous le complément à 2 sur 8, 16 ou 32 bits pour représenter les nombres négatifs.

Unité 2: Représentation interne des informations

Page 24: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 24

3.3 Données numériques3.3.2 Entiers négatifs

La représentation en complément à 2 va de -2n-1 à 2n-1-1

Avec des motifs de 8 bits :

Nombres positifs

0000 0000 à 0111 1111 ou encore 0016 à 7F16 = 0 à 127

Nombres négatifs

1000 0000 à 1111 1111 ou encore 8016 à FF16 = -128 à -1

Avec des motifs de 16 bits :

Nombres positifs

0000 à 7FFF = 0 à 32767

Nombres négatifs

8000 à FFFF = -32768 à -1

Unité 2: Représentation interne des informations

Page 25: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 25

3.3 Données numériques3.3.2 Entiers négatifs

Avec des motifs de 32 bits :

Nombres positifs

0000000016 à 7FFFFFFF16 = 0 à 2 147 483 647

Nombres négatifs

8000000016 à FFFFFFFF16 = -2 147 483 648 à -1

Unité 2: Représentation interne des informations

Page 26: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 26

3.3 Données numériques3.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.

Unité 2: Représentation interne des informations

Page 27: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 27

3.3 Données numériques3.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 FF16 et en ajoutant 1 au résultat :

5 = 0516

-5 = FF16 - 0516 + 0116 = FA16 + 0116 = FB16 = 1111 10112

Remarquez que c’est le même résultat qu’en complément à 2.

Sur 16 bits : 5 = 000516

-5 = FFFF16 - 000516 + 000116 = FFFB16

Unité 2: Représentation interne des informations

Page 28: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 28

3.3 Données numériques3.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)

4 - 5 = 4 + (-5)

Unité 2: Représentation interne des informations

111110000 0101

+1111 1100(1) 0000 0001

0000 0100+1111 1011

1111 1111

retenue

0000 0101-0000 01000000 0001

ou

0000 0100-0000 0101

(1)1111 1111empruntou

1

Page 29: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 29

3.3 Données numériques3.3.2 Entiers négatifs

Soustraction en hexadécimal avec ou sans le complément à 16 :

Sur 16 bits :5 - 4 = 5 + (-4)

4 - 5 = 4 + (-5)

Unité 2: Représentation interne des informations

1110005

+FFFC(1)0001

0004+FFFBFFFF

0005-00040001

ouretenue

ou

0004-0005

(1)FFFF

111

emprunt

1

1

Page 30: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 30

3.3 Données numériques3.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é

Unité 2: Représentation interne des informations

Page 31: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 31

3.2 Données non numériquesEndianisme

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 F28A en hexadécimal.

En little-endian, la mémoire contiendra 8A F2, tandis qu’en big-endian, elle contiendra F2 8A

Unité 3: Représentation interne des informations

Page 32: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 32

3.3 Données numériques3.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.

Unité 3: Représentation interne des informations

1 1011 11011101100000 11011  

11011   101011111

Page 33: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 33

3.3 Données numériques3.3.1 Entiers positifs ou nuls

Multiplication

On peut également effectuer cette opération en hexadécimal :

Unité 3: Représentation interne des informations

1B 0D

1 8F0D 15F

On utilise à cette fin la table de multiplication hexadécimale du supplément (Appendice 5).

Page 34: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 34

3.3 Données numériques3.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.

Résultat : 10112, reste 00112

Unité 3: Représentation interne des informations

101111 / 0100100 10011 0 111 100 1 0111 100 1 011

Page 35: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 35

3.3 Données numériques3.3.1 Entiers positifs ou nulsDivisionL’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.

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/ift17583/Arithm.html

Unité 3: Représentation interne des informations

0 0 0 0 0 0 1 0 1 1 1 1R D

Page 36: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 36

3.3 Données numériques3.3.1 Entiers positifs ou nuls

Division (101111 / 100) sur 6 bits

R D Décalage no.0 0 0 0 0 0 1 0 1 1 1 10 0 0 0 0 1 0 1 1 1 1 0 Q = 0 10 0 0 0 1 0 1 1 1 1 0 0 Q = 0 0 20 0 0 1 0 1 1 1 1 0 0 0 Q = 0 0 0 30 0 0 1 0 00 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 Q = 0 0 0 1 40 0 0 1 1 1 1 0 0 0 0 0 Q = 0 0 0 1 0 50 0 0 1 0 00 0 0 0 1 10 0 0 1 1 1 0 0 0 0 0 0 Q = 0 0 0 1 0 1 60 0 0 1 0 00 0 0 0 1 1

Q = 0 0 0 1 0 1 1 7

Unité 3: Représentation interne des informations

Page 37: Unité 2:  Représentation interne des informations

©Pierre Marchand, 2001 37

3.3 Données numériques3.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 :

Réponse : 7CB16 / 1C16 = 4716 reste 7.

Unité 3: Représentation interne des informations

7CB / 1C70 470CB C4 07