Vous êtes sur la page 1sur 42

CHAPITRE 2

BASE DES SYSTEMES


INFORMATIQUES

REPRESENTATION INFORMATIQUE DES NOMBRES ET DES


CARACTERES

1
INTRODUCTION

BInary digiT (chiffre binaire)


2
Combien d’informations peut on écrire (coder) avec
1 bit ? 2 bits? et avec 8 bits?

1 1 0 0 1 0 1 1
Exemple d’information codée sur 8 bits

1 octet = 1 byte = 8 bits

1 ko = 210 octets= 1024 octets


1 Mo = 220 octets= 1048576 octets = 1024 ko

1 Go = 230 octets = 1 073 741 824 octets = 1024 Mo

1 To = 240 octets = 1 099 511 627 776 octets = 1024 Go


3
CODAGE BINAIRE D’UN NOMBRE ENTIER

Décomposition en binaire

4
• Ex: décomposition décimale en binaire: 7710

• Résultat = 10011012
5
6
OPERATIONS BINAIRES

7
TABLE D’ADDITION BINAIRE

8
TABLE DE SOUSTRACTION BINAIRE

9
TABLE DE MULTIPLICATION BINAIRE

10
TABLE DE DIVISION BINAIRE

11
REPRESENTATION HEXADECIMALE
Numération hexadécimale: meilleur compromis pour
tout système informatique qui utilise des mots dont le
nombre de bits est divisible par 4.

12
EXEMPLE

CAS DES BASES 2, 8 et 16

Ces bases correspondent à des puissances de 2 (21,


23 et 24) d’où des passages de l’une à l’autre très
simples. Les bases 8 et 16 sont pour cela très utilisées
en informatique, elles permettent de représenter
rapidement et de manière compacte des
configurations binaires.
13
La base 8 est appelée notation octale, et la
base 16 notation hexadécimale.
Chaque chiffre en base 16 (24) représente un
paquet de 4 bits consécutifs.

Le système octal utilise les huit symboles : 0, 1,


2, 3, 4, 5, 6, 7. Le passage de la base 2 à la
base 8 se fait de façon immédiate en groupant
les chiffres binaires 3 par 3. Ainsi :

1011101,011012 = 001 | 011 | 101,011 | 010 =


135,328

14
Le passage de la base 2 à la base 16 se fait de la
même façon en groupant les chiffres binaires par bloc
de 4 symboles. Ainsi :
1011101,011012 = 0101 | 1101,0110 | 1000 = 5D,6816

QUELQUES VALEURS DE REFERENCE

15
CODAGE DES NOMBRES FRACTIONNAIRES
Nombres fractionnaires On multiplie la partie
fractionnaire par la base en répétant l’opération
sur la partie fractionnaire du produit jusqu’a ce
qu’elle soit nulle (ou que la précision voulue soit
atteinte). Pour la partie entière, on procède par
divisions comme pour un entier.
Exemple : conversion de (54, 25) en base 2

(54,25)10 = 110110,010
16
QUELQUES VALEURS DE REFERENCE

17
REPRESENTATION DES ENTIERS RELATIFS –
NOTION DE COMPLEMENT
Il faut ici coder le signe du nombre. On utilise le codage
en complément à deux, qui permet d’effectuer ensuite
les opérations arithmétiques entre nombres relatifs de
la même façon qu’entre nombres naturels.

18
19
SIGNE ET VALEUR ABSOLUE

COMPLEMENT A UN OU COMPLEMENT RESTREINT Cr

20
COMPLEMENT A DEUX OU COMPLEMENT VRAI Cv

21
Cv = Cr +1 (complément vrai Cv)
Exemple : soit à coder la valeur -2 sur 8 bits. On
exprime 2 en binaire, soit 00000010. Le
complément à 1 est 11111101. On ajoute 1 et on
obtient le résultat : 1111 1110.
Remarques :
le bit de poids fort d’un nombre négatif est
toujours 1
 sur n bits, le plus grand entier positif est
+2n-1-1= 011…..1 ;
sur n bits, le plus petit entier négatif est
-2 n-1 = 100…..0
22
COMPLEMENT A DEUX SUR 4 BITS

REMARQUE : MAX +1 = MIN


23
24
REPRESENTATION DES NOMBRES
BINAIRES AVEC LA VIRGULE
FLOTTANTE
IEEE754 – 1985

25
IEEE 754 – 1985 (Institute of Electronic and
Electronics Engineers)

C’est une norme pour la représentation des


nombres à virgule flottante en binaire. C’est la
norme la plus employée actuellement pour le calcul
des nombres à virgule flottante dans le domaine
informatique.
La norme définit les formats de représentation des
nombres à virgule flottante (signe, mantisse,
exposant, nombres normalisés) et valeurs
spéciales et en même temps qu’un ensemble
d’opérations sur les nombres flottants.
26
Un diagramme représentant un nombre à virgule flottante avec une mantisse et
un exposant

Elle consiste à représenter un nombre par un signe s (égal à -1 ou 1),


une mantisse m (aussi appelée significande) et un exposant e (entier relatif,
généralement borné).
Un tel triplet représente un réel s.m.be où b est la base de représentation.
En faisant varier e, on fait « flotter » la virgule.

Les nombres en virgule flottante peuvent être vus comme l'équivalent informatique
de la notation scientifique, qui correspond à la deuxième convention (virgule placée
juste après le premier chiffre).

Ceci s'oppose à la représentation dite en virgule fixe, où l'exposant e est fixé.

27
L'avantage de la représentation en virgule flottante par
rapport à la virgule fixe, est que la virgule flottante est
capable, à nombre de bits égal, de gérer un intervalle de
nombres réels plus important. Par exemple, une
représentation en virgule fixe qui a sept chiffres décimaux
et fixée à deux chiffres après la virgule peut représenter
les nombres 12345.67, 123.45, 1.23, etc

La représentation en virgule flottante peut quant à elle,


avec sept chiffres décimaux, représenter en plus
1.234567,
123456.7 = 1.234567 × 105,
0.00001234567 = 1.234567 × 10-5,
1234567000000000 = 1.234567 × 1015, etc.
28
La version 1985 de la norme IEEE 754
définit quatre formats pour représenter des
nombres à virgule flottante :
•simple précision (32 bits) : 1 bit de
signe, 8 bits d'exposant , 23 bits de
mantisse, avec bit 1 implicite) ;

•double précision (64 bits) : 1 bit de


signe, 11 bits d'exposant, 52 bits de
mantisse, avec bit 1 implicite) ;
29
30
Comment ces 32 bits sont utilisés pour représenter
un nombre à virgule?
3 composants essentiels
- le signe
- l’exposant
- la mantisse
Une zone de 8 bits est utilisée comme représentation
d’un entier positif qu’on appelle exposant.
Si on utilise les valeurs positives pour la puissance
de la base dans la représentation flottante, on aura
des entiers très grands. C’est pour la raison pour
laquelle l’on va soustraire à l’exposant une quantité
qui est le biais = 127.
31
Caractéristique de cette représentation
8 bits ------> 256 valeurs distribuées entre [0,
255] si l’on ne considère que des entiers
positifs entre
[0, 255].
On soustrait un biais de 127
[0, 255] ------> [-127, 128]
[-127, 128] ------> ~[10-38, 10+38]
Grâce aux puissances négatives de la base,
on va pouvoir représenter des nombres très
grands et très petits ~[10-38, 10+38]
32
Forme normalisée en binaire.

X = (-1)s.(1+m).2e-127

S= 0 si le nombre est positif


S= 1 si le nombre est négatif

Le 1 est implicite, pas besoin de


réserver des bits pour cela.
33
X= 0 01111100 010000000000000000000000
•Le bit correspondant au signe est nul, et donc il
s’agit d’un nombre positif.

•L’exposant est
0.27+1.26+1.25+1.24+1.23+1.22+0.21+0.20-127= -3
(e-127)
c) La partie significative est
1+0.2-1+1.2-2= 1.25 (1+m)

Le nombre codé est


x= 1.25 x 2-3 = +0.15625 X = (-1)s.(1+m).2e-127
34
•Comment est codé en machine X= 25.375 ?
• On décompose en binaire 25 et 0.375
25 = 1.24+1.23 + 0.22+ 0.21 +1.20
0,375= 0,0.2-1 + 1.2-2 + 1.2-3
X = 1.24 + 1.23 + 0.22 + 0.21 + 1.20 + 0.2-1+ 1.2-2+ 1.2-3
On exprime x sous la forme normalisée :

X =(1 +1.2-1 +0.2-2 +0.2-3 +1.2-4 + 0.2-5+ 1.2-6+ 1.2-7)24


On détermine les différents éléments du codage binaire :
• Le signe : 0
•L’exposant : 4+127 = 131 = 10000011
•La mantisse : 10010110000000000000000
(on ne tient pas compte du bit caché)
Finalement
X= 0 10000011 10010110000000000000000
35
Exemple 1

Codons le nombre décimal −118,625 en


utilisant le mécanisme IEEE 754.
•Premièrement, nous avons besoin du signe,
de l'exposant et de la partie fractionnaire.
C'est un nombre négatif, le signe est donc
« 1 ».
•Puis nous écrivons le nombre (sans le
signe) en binaire. Nous obtenons
1110110,101 36
•Ensuite, nous décalons la virgule vers la gauche, de
façon à ne laisser qu'un 1 sur sa gauche :
1110110,101 (bin) = 1,110110101 (bin) × 26.
C’est un nombre flottant normalisé
La mantisse est la partie à droite de la virgule,
remplie de 0 vers la droite pour obtenir 23 bits.
Cela donne :

110 1101 0100 0000 0000 0000


(on omet le 1 avant la virgule, qui est implicite).
37
L'exposant est égal à 6, et nous devons le
convertir en binaire et le décaler. Pour le
format 32-bit IEEE 754, le décalage est
28−1−1 = 127.

Donc 6 + 127 = 133 (dec) = 1000 0101 (bin).

On a donc

−118,625 (dec) =
110000101 110 1101 0100 0000 0000 0000 (bin) =
C2ED4000 (hexa).
38
39
LE CODAGE DES CARACTERES
Pour qu’une information (ou qu’un ensemble
d’informations) soit acceptable par
l’ordinateur, il faut que nous puissions la
coder, la représenter sous la forme d’une
série de nombres entiers. On sait qu’en
réalité ces nombres entiers sont eux-mêmes
écrits en binaire (et non en décimal).
Il est nécessaire que chacun des caractères
utilisés trouve un numéro. Ceci a donné lieu à
plusieurs systèmes de codage dont les plus
connus sont le système ASCII et ANSI 40
•Le code ASCII (American Standard Code for
Information Interchange) est l’un des codes les plus
utilisés en informatique.
•défini aux USA en 1963 puis repris ensuite par les
organismes de normalisation des transmissions
internationales de données qui en ont fait le code ISO à 7
bits (International Standard Organisation) ou code
CCITT (Commission Consultation Internationale des
Téléphones et Télécommunication).
•Le code ASCII à 7 bits définit 128 combinaisons
binaires différentes autorisant la codification de 128
caractères ou commandes.
Souvent assimilé à un code à 8 bits car on ajoute
généralement aux 7 bits initiaux, un bit de contrôle
(bit de parité) ASCII étendu = 8 bits 41
Décimal Hexa Binaire Caractère Décimal Hexa Binaire Caractère

0 0 00000000 NUL 32 20 00100000 ESPACE

1 1 00000001 33 21 00100001 !

2 2 00000010 STX 34 22 00100010 "

3 3 00000011 ETX 35 23 00100011 #

4 4 00000100 EOT 36 24 00100100 $

5 5 00000101 37 25 00100101 %

6 6 00000110 ACK 38 26 00100110 &

7 7 00000111 BEL 39 27 00100111 '

8 8 00001000 40 28 00101000 (

9 9 00001001 41 29 00101001 )

10 A 00001010 LF 42 2A 00101010 *

11 B 00001011 43 2B 00101011 +

12 C 00001100 44 2C 00101100 ,

13 D 00001101 CR 45 2D 00101101 -

14 E 00001110 46 2E 00101110 .

15 F 00001111 47 2F 00101111 /

16 10 00010000 48 30 00110000 0

17 11 00010001 49 31 00110001 1

18 12 00010010 50 32 00110010 2

19 13 00010011 51 33 00110011 3

20 14 00010100 NAK 52 34 00110100 4

21 15 00010101 53 35 00110101 5

22 16 00010110 54 36 00110110 6

23 17 00010111 55 37 00110111 7
42

Vous aimerez peut-être aussi