Transcript voir

Lycée Louis Vincent

SEANCE 2

Représentation numérique de l’information Lundi 4 novembrer 2013 1

Contenu de la séance 1:

Représentation binaire:

Les entiers signés.

Le complément à 2.

Codage des nombres réels.

Lundi 4 novembre 2013 2

Les entiers signés

Problème : on a vu dans la séance 1 comment étaient codés les entiers « positifs » en base 2, mais comment coder des entiers négatifs ?

Une solution envisageable est que le premier bit soit considère comme un bit de signe et le reste des bits comme la valeur absolue du nombre, codée de la manière vue dans le cours précèdent. Un nombre commençant par

0

serait

positif

et un nombre commençant par Exemples : Quels nombres codés sur 8 bits par : 11001111 =

― 79 1 négatif

et 01001111 = .

79

Il y a deux zéros, l’un positif et l’autre négatif. Il faut donc gérer l’égalité. On perd donc une valeur !

Lundi 4 novembre 2013 3

Les entiers signés

 Combien d’entiers relatifs peut-on coder sur 2 bits ?

3 valeurs

Base 2

Base 10 Sur 3 bits ?

00

0

7 valeurs 000

0

001

1

010

2

011

3

01

1

100

0

10

0

101

- 1

11

- 1

110

- 2

111

- 3 On peut donc coder les entiers relatifs de – 3 à 3  Sur 4 bits ?

15 valeurs

On peut donc coder les entiers relatifs de – 4 à 4. Sur n bits, on code 2 n – 1 valeurs.

Cette solution n’est pas retenue pour le codage des entiers relatifs !

Lundi 4 novembre 2013 4

Le complément à 2

  

Principe : on souhaite coder un nombre relatif x en

utilisant n bits. Deux cas de figure se présentent : ◦ Soit x est

positif

, dans ce cas on utilise

la représentation

binaire usuelle

vue à la première séance sur le codage.

Soit x est

négatif

, dans ce cas on utiliser pour représenter x, le codage binaire su nombre entier naturel (

x + 2

n

).

Exemples : codage sur un octet (8 bits)

◦ Le nombre 115 (positif), sera codé :

01110011

◦ Le nombre – 115 étant négatif, sera remplacé par : - 115 + 2 8 = – 115 + 256 = 141 soit :

10001101

Dans la pratique, pour coder – 115, on procède de la manière suivante : ◦

Coder 115

: 01110011 ◦ ◦

Complément à 1 Ajouter 1

(inversion de tous les bits) : 10001100 : 10001101 Lundi 4 novembre 2013 5

Retour à la base 10

  Méthode : de la base 2 à la base 10.

Pour convertir un nombre binaire en complément à 2 sur n bits, dans la base dix, on procède de la façon suivante : On sépare le premier bit s des n – 1 bits suivants. Ces n – 1 bits représentent, en binaire usuel, une valeur positive v. La valeur de ce nombre est alors

:

 v si s = 0.

 v−2 n−1 si s = 1 Exemples : quels sont les entiers relatifs codés sur 4 bits ?

0000 0101 0 5 0001 0110 1 6 0010 0111 2 0011 7 1000 3 0100 -8 1001 4 0101 -7 1010 5 -6 1000 : 000 2 = 0 10 donc v = 0 – 2 4 – 1 = 0 – 8 = – 8 Lundi 4 novembre 2013 6

Codage des nombres réels

 Après les nombres entiers relatifs, se pose tout naturellement le problème des nombres réels, ou du moins leur approximation dans les machines. En effet, l'ordinateur n'ayant qu'une mémoire finie, il ne peut stocker tous les chiffres des décimales de exemple ou même toutes les décimales du résultat du calcul de ou 2 π par 2 . Pour représenter les réels dans la mémoire de la machine, on utilise une notation qui se rapproche de la notation scientifique que vous connaissez en écriture décimale.

Rappel : en écriture décimale, la notation scientifique d'un nombre consiste à l'écrire sous la forme a×10 besoin de 3 informations :    son signe.

la valeur de n ∣ a ∣ .

n , avec 0≤ ∣ a ∣ < 10 . Pour écrire un nombre en notation scientifique, nous avons donc Pour coder les nombres réels, nous utiliserons la représentation proche de cette méthode.

Lundi 4 novembre 2013 7

Codage des nombres réels

Un nombre est représenté sous la forme   

s m

est le signe du nombre (+ ou -) sa

mantisse

1 inclus et 2 exclu).

s

×

m

×2

n

où : (un nombre à virgule, compris entre

n

son exposant (un entier relatif). L'exposant peut être positif ou négatif. Cependant, la représentation habituelle des nombres signés (complément à 2) rendrait la comparaison entre les nombres flottants un peu plus difficile. Pour régler ce problème, l'exposant est décalé, afin de le stocker sous forme d'un nombre non signé. Ce décalage est de 2 de bits e est fixé.

e-1 - 1 (e représente le nombre de bits de l'exposant) ; il s'agit donc d'une valeur constante une fois que le nombre Lundi 4 novembre 2013 8

Codage des nombres réels

Exemple :

Quand on utilise 64 bits pour représenter un nombre à virgule, on utilise :  1 bit pour le signe, le signe + est représenté par 0 et le signe - par 1.

  11 bits pour l’exposant (l’exposant n est un entier relatif compris entre -1022 et 1 023, on le représente comme l’entier naturel n + 1 023, qui est compris entre 1 et 2 046).

52 bits pour la mantisse (La mantisse m est un nombre binaire à virgule compris entre 1 inclus et 2 exclu, comprenant 52 chiffres après la virgule.

Comme cette mantisse est comprise entre 1 et 2, elle a toujours un seul chiffre avant la virgule et ce chiffre est toujours un 1 ; il est donc inutile de le représenter et on utilise les 52 bits pour représenter les 52 chiffres après la virgule). Les chiffres de la mantisse sont à multiplier par les puissances successives, négatives de 2 ( 2 −1 , 2 −2 , …, 2 −52 ) Remarque : Les deux entiers naturels 0 et 2 047 pour l'exposant sont réservés pour des situations exceptionnelles (+∞, -∞, etc.).

Lundi 4 novembre 2013 9

Codage des nombres réels

Exemple 1 : quel nombre est codé sur 32 bits sachant que l’on réserve alors :  1 bit pour le signe.

  8 bits pour l'exposant (donc un décalage de 127) 23 bits pour la mantisse 1 1 0 1 1 0 1 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 1 1 1 1 1

s

n = exposant m = mantisse X = (-1)×2 n – 127 ×(1+2 −1 +2 −6 +2 −7 +2 −8 +2 −9 +2 −17 +…+2 −22 +2 −23 ) Or n = 2 7 + 2 5 + 2 4 + 2 2 = 180 X = (-1) × 2 180 – 127 × 1,529 308 199 9 X ≈ - 1,377 778 368 × 10 16 .

Lundi 7 octobre 2013 10