8
Le codage des nombres en informatique Un ordinateur manipule des données, et a besoin de coder et représenter ces données. Une base est un système de numération et d’écriture dans laquelle il faut arriver à N pour passer a une puissance supérieure et dans laquelle on compte de 0 jusqu’à N-1 avec N caractères différents. Plusieurs bases de codage possibles: - Base 2 (système binaire) : 0,1 un chiffre= un bit - Base 4 (système quaternaire) : ▲, ◆, ■, ● - Base 8 (système octal) : 0,1,2,3,4,5,6,7 - Base 10 (décimale) : 0,1,2,3,4,5,6,7,8,9 (base de calcul usuelle) - Base 16 : (système hexadécimal) : 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E - Et plus… - Bases les plus utilisées: -Pour nous: base décimale -Pour un ordinateur:

Le codage des nombres en informatique Un ordinateur manipule des données, et a besoin de coder et représenter ces données. Une base est un système de numération

Embed Size (px)

Citation preview

Page 1: Le codage des nombres en informatique Un ordinateur manipule des données, et a besoin de coder et représenter ces données. Une base est un système de numération

Le codage des nombres en informatique

Un ordinateur manipule des données, et a besoin de coder et représenter ces données.

Une base est un système de numération et d’écriture dans laquelle il faut arriver à N pour passer a une puissance supérieure et dans laquelle on compte de 0 jusqu’à N-1 avec N caractères différents.

Plusieurs bases de codage possibles:

- Base 2 (système binaire) : 0,1 un chiffre= un bit

- Base 4 (système quaternaire) : ▲, , ■, ●◆

- Base 8 (système octal) : 0,1,2,3,4,5,6,7

- Base 10 (décimale) : 0,1,2,3,4,5,6,7,8,9 (base de calcul usuelle)

- Base 16 : (système hexadécimal) : 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E

- Et plus…

- Bases les plus utilisées: -Pour nous: base décimale

-Pour un ordinateur: base binaire et dérivées: base octal

(8) ou hexadécimale (16).

Page 2: Le codage des nombres en informatique Un ordinateur manipule des données, et a besoin de coder et représenter ces données. Une base est un système de numération

I) LE CODAGE DES NOMBRES ENTIERS RELATIFSPour convertir un nombre de base

décimal en une base k, on effectue une répétition de divisions euclidiennes. On divise le nombre connu par k. Le reste constitue le bit le plus à droite, puis on divise le quotient par k et on récupère le reste jusqu’à ce que le quotient soit nul.

Exemple : 13 base 2

En base 2, 13 =

I) Le codage des nombres entiers positifs

13 2

61 2

230

11 2

1 0

Page 3: Le codage des nombres en informatique Un ordinateur manipule des données, et a besoin de coder et représenter ces données. Une base est un système de numération

Exemple : 47 base 8

47 8

5

785

0

Base 16

1615

2

2

47 en base 8 :

47 en base 16 :

E

Dans d’autres bases

16

Page 4: Le codage des nombres en informatique Un ordinateur manipule des données, et a besoin de coder et représenter ces données. Une base est un système de numération

II) Les entiers négatifs

Il existe deux manières de coder les nombres négatifs : la méthode la plus simple est de réserver le bit de poids fort (celui le plus à gauche) à la détermination du signe 0 pour positif et 1 pour négatif. Le problème est que les mots 10000000 et 00000000 codent pour -0 et 0.

Exemple 5 et -5 sur un octet:

Base 25 -> 00000101

-5 -> 10000101

Base 85 -> 00000005-5 -> 10000005

L’autre méthode consiste à consacrer la première moitié des mots au nombres positifs ou nuls et la seconde pour les nombres négatifs dans l’ordre croissant. Ainsi pour un octet, on peut coder de 0 à 127 et de -1 à -128 ; où 0 est codé 00000000 et -1 : 11111111

Base 25 -> 00000101

-5 -> 11111011

Base 85 -> 00000005-5 -> 77777773

00000000 = 0

01111111 = 127

11111111 = -1

10000000 = -128

Page 5: Le codage des nombres en informatique Un ordinateur manipule des données, et a besoin de coder et représenter ces données. Une base est un système de numération

III) Les nombres décimaux

Pour coder des nombres décimaux en base k, il faut séparer le nombre choisi en deux parties : Une première partie avant la virgule, une seconde partie après.

1ère partie: codage normal (avant la virgule)

2ème partie: Au lieu de diviser par k, on multiplie par k (après la virgule)

Exemple avec 0.125 : 0.125*2 = 0.25 0.25<1 on pose 0

0.25*2 = 0.5 0.5<1 on pose 0

0.5*2 = 1 1=1 on pose 1

(0.125)2 = 0.001

Exemple avec 0.75 : 0.75*2 = 1.5

0.5*2 = 1

1.5<1 on pose 1

1=1 on pose 1

(0.75)2 = 0.11

Page 6: Le codage des nombres en informatique Un ordinateur manipule des données, et a besoin de coder et représenter ces données. Une base est un système de numération

Exemple avec 0.9 en base 2 :

0.9*2 = 1.8

0.8*2 = 1.6

0.6*2 = 1.2

0.2*2 = 0.4

0.4*2 = 0.8

0.8*2 = 1.6

1.8>1 on pose 1

1.6>1 on pose 1

1.2>1 on pose 1

0.4<1 on pose 0

0.8<1 on pose 0

1.6>1 on pose 1

(0.9)2 ≈ 0.111001

Exemple avec 0.03125 en base 16 :

0.03125*16 = 0.5 0.5<1 on pose 0

8>1 on pose 80.5*16 = 8

(0.03125)16 = 0.08

0.125*4 = 0.5Exemple avec 0.125 en base 4 :

0.5*4 = 2 2>1 on pose ■

0.5<1 on pose ▲

(0.125)4 = ▲, ▲■

Page 7: Le codage des nombres en informatique Un ordinateur manipule des données, et a besoin de coder et représenter ces données. Une base est un système de numération

A une autre échelle, les nombres décimaux et entiers les plus grands et le plus petit sont représentés d’une autre manière.

0000000000000000000000000000000000000000000000000000000000000000

Le bit de point fort correspond au signe. (0 = positif, 1= négatif)

Les 11 bits suivants correspondent à l’exposant, qui permet de trouver n par : exposant = n+1023.

Les 52 suivants correspondent à la mantisse, m.

Un nombre en base k est représenté sous la forme s m*k^n Ce qui représente l’écriture scientifique en base k Quand on change de base on remplace le « k », par la valeur de la base choisie, ainsi en base 2, on a s m*2^n ou pour la hexadécimal s m*16^n.

-Pour une précision simple : 32 bits1 bit de signe, 8 bits exposant, 23 bits mantisse

-Pour une double précision:1 bit de signe, 11 bits exposant, 52 bits mantisse

Page 8: Le codage des nombres en informatique Un ordinateur manipule des données, et a besoin de coder et représenter ces données. Une base est un système de numération

Exemples Pour -1,0331*10^9

Le signe est négatif donc 1

1.0331*10^9 = 1.924298704*2^29

Exposant = n+1023

Exposant = 29+1023 = 1052

Le nombre 1052 est égal à 10000011100

Mantisse = 9242987047

1000100110111011001100101000100111

Ce nombre est donc représenté par le mot:11000001110010001001101110110011001010001001110000000000

00000000

Cas particulier

+∞=0111111111110000000000000000000000000000000000000000000000000000000000000

-∞ =1 11111111111 0000000000000000 000000000000000000000000000000000000000000000

NaN*=1111111111111111111111111111111111111111111111111111111111111111

* Not a number, qui est une valeur indéfinie.