Vous êtes sur la page 1sur 10

1/40 Micro-contrôleur 2/40 Plan

Codage Codage

JM ENJALBERT JM ENJALBERT 1 Codage d’une information


enjalbert@laas.fr enjalbert@laas.fr
Principe
Codage d’une Codage d’une Binaire et hexadécimal
information information
Principe Principe
Binaire et
I-Codage des Informations Binaire et 2 Caractères
hexadécimal hexadécimal
Caractères Caractères
Code ASCII
Code ASCII Code ASCII Autres codes
Autres codes Autres codes
Entiers naturels JM ENJALBERT Entiers naturels 3 Entiers naturels
Entiers relatifs
enjalbert@laas.fr Entiers relatifs
Signe et valeur
absolue
Signe et valeur
absolue
4 Entiers relatifs
Complément à 2
Technique de Université Paul Sabatier - Toulouse III
Complément à 2
Technique de
Signe et valeur absolue
l’excédent l’excédent
Complément à 2
Nombres réels Nombres réels
Virgule fixe Septembre 2017 Virgule fixe Technique de l’excédent
Virgule flottante Virgule flottante
5 Nombres réels
Virgule fixe
Virgule flottante

3/40 Introduction 4/40 Principe d’un codage discret

Codage Codage

JM ENJALBERT JM ENJALBERT
enjalbert@laas.fr enjalbert@laas.fr

Un processeur est une machine de traitement de données qui ne


Codage d’une Codage d’une Soit X = {x1 , x2 , . . . xp } un ensemble fini de p informations à
information connait et ne traite que des bits où plus précisément des suites information
Principe Principe coder.
Binaire et de bits. Elle fonctionne sur le principe de l’algèbre de Boole Binaire et
hexadécimal hexadécimal Soit Y = {y1 , y2 , . . . yq } avec q  p un ensemble de symboles.
Caractères
(logique binaire) Caractères
Un codage consiste à représenter un élément de X par une
Code ASCII
Les données que l’on souhaite traiter sont de différentes Code ASCII
Autres codes Autres codes concaténation d’éléments de Y .
Entiers naturels natures : nombres, caractères, images, sons, etc... Entiers naturels
A deux éléments distincts de X doivent correspondre deux
Entiers relatifs
Il est donc nécessaire de les coder pour pouvoir les traiter Entiers relatifs
Signe et valeur
absolue
Signe et valeur
absolue
mots-codes différents.
Complément à 2 On parlera de code ou de mot-code comme une suite de bits qui Complément à 2
Technique de Technique de
En général on utilise un code de longueur fixe. Pour q symboles
représente une information
l’excédent l’excédent
et un code de longueur l on pourra coder q l informations.
Nombres réels Nombres réels
Notons qu’il ne faut pas confondre la suite de bits (code) et
Virgule fixe Virgule fixe Par exemple pour q = 10 (chiffres décimaux) et l = 4 on pourra
Virgule flottante l’information qu’elle représente, un même code pouvant avoir Virgule flottante
coder 104 = 10000 nombres.
différentes significations suivant le contexte.
5/40 Code binaire 6/40 Relation Binaire/Hexadécimal

Codage Codage

JM ENJALBERT JM ENJALBERT
Conversion binaire ↔ hexadécimal
enjalbert@laas.fr enjalbert@laas.fr

Dans un ordinateur l’ensemble des symboles se limite à 2 Le passage du binaire à l’hexadécimal se fait simplement en
Codage d’une Codage d’une
information
éléments : Y = {0, 1}. information regroupant les bits par paquets de 4 et en codant chaque paquet par
Principe
Binaire et Un élément de X (information) est codé par une suite de bits
Principe
Binaire et
le symbole hexadécimal correspondant suivant la table de
hexadécimal
(mot-code).
hexadécimal
correspondance :
Caractères Caractères
Code ASCII
Autres codes Un octet (suite de 8 bits) est l’objet de taille minimale accessible
Code ASCII
Autres codes
base 2 0000 0001 0010 0011 0100 0101 0110 0111
Entiers naturels dans une mémoire. Il permet de coder 28 soit 256 informations Entiers naturels
base 16 0 1 2 3 4 5 6 7
Entiers relatifs différentes. Entiers relatifs base 2 1000 1001 1010 1011 1100 1101 1110 1111
Signe et valeur Signe et valeur
absolue Le codages des données et des instructions se fait donc sur n absolue base 16 8 9 A B C D E F
Complément à 2 Complément à 2
Technique de multiple de 8 bits. Technique de
Exemples :
l’excédent l’excédent
Nombres réels Remarque : on utilise souvent la notation hexadécimale (base Nombres réels le code binaire 1010 0101 s’écrit A5 en hexadécimal.
Virgule fixe Virgule fixe
Virgule flottante 16), plus compacte, pour représenter un code binaire de Virgule flottante Le code hexadécimal C2 s’écrit 1100 0010 en binaire.
longueur 4 : Y={0, 1, . . . , 9, A, B, C , D, E , F }.
Remarque : On peut rencontrer différentes notations pour représenter
un nombre hexadécimal, par exemple : C2h (h pour hexadécimal)
$C2 (généralement utilisé en assembleur) 0xC2 (en langage C) ou
simplement C2 s’il n’y a pas d’ambiguité possible.

7/40 Codage des caractères 8/40


Code ASCII
American Standard Code for Information Interchange

Codage Codage

JM ENJALBERT JM ENJALBERT bits 654


enjalbert@laas.fr enjalbert@laas.fr
bits 3210 000 001 010 011 100 101 110 111
Codage d’une
Avec 7 bits, on peut distinguer 27 = 128 informations différentes Codage d’une
0000 NUL DLE 0 @ P ` p
information
ce qui est suffisant pour représenter les différents caractères de information 0001 SOH DC1 ! 1 A Q a q
Principe Principe 0010 STX DC2 ” 2 B R b r
Binaire et
hexadécimal
l’alphabet latin (majuscules, minuscules, chiffres, caractères Binaire et
hexadécimal 0011 ETX DC3 # 3 C S c s
Caractères spéciaux). Caractères 0100 EOT DC4 $ 4 D T d t
Code ASCII
A chacun de ces caractères est donc associé un code sur 7 bits
Code ASCII 0101 ENQ NAK % 5 E U e u
Autres codes Autres codes
0110 ACK SYN & 6 F V f v
Entiers naturels suivant une norme. On parle de code ASCII. Entiers naturels
0111 BEL ETB ’ 7 G W g w
Entiers relatifs Entiers relatifs
Dans un code binaire, les bits sont repérés par leur position en 1000 BS CAN ( 8 H X h x
Signe et valeur Signe et valeur
absolue absolue 1001 HT EM ) 9 I Y i y
Complément à 2
partant du bit 0 à droite et en allant vers la gauche. Ainsi un Complément à 2 1010 LF SUB * : J Z j z
Technique de
l’excédent code ASCII sur 7 bits se notera : a6 a5 a4 a3 a2 a1 a0 où chaque ai Technique de
l’excédent 1011 VT ESC + ; K [ k {
Nombres réels est un bit qui vaut 0 ou 1. Nombres réels 1100 FF FS , < L \ l |
Virgule fixe Virgule fixe 1101 CR GS - = M ] m }
Virgule flottante La table suivante représente la correspondance entre les Virgule flottante
1110 SO RS . > N ˆ n ˜
caractères et leurs codes binaires : 1111 SI US / ? O o DEL

Exemple : Le code 100 1000 (0x48 en hexadécimal) est celui du


caractère H
9/40 Propriétés du code ASCII 10/40 Caractères de contrôle

Codage Codage

JM ENJALBERT JM ENJALBERT
enjalbert@laas.fr enjalbert@laas.fr
Les lettres se suivent dans le code, le tri par ordre alphabétique NUL nul VT tabulation verticale
Codage d’une Codage d’une
information se ramène donc à un tri arithmétique information
SYN synchronisation SOH début d’en-tête
Principe Principe FF présentation de formule ETB fin de bloc de transmission
Binaire et
hexadécimal
La transformation majuscule ↔ minuscule se fait simplement en Binaire et
hexadécimal
STX début de texte CR retour début de ligne
Caractères
inversant le bit 5 du code. Caractères
CAN annulation ETX fin de texte
Code ASCII Code ASCII SO hors code EM fin de support
Autres codes La valeur d’un chiffre en binaire naturel s’obtient en prenant les Autres codes EOT fin de communication SI en code
Entiers naturels 4 bits de poids faible de son code ASCII (bits 3 à 0). Entiers naturels SUB substitution ENQ demande
Entiers relatifs Entiers relatifs DLE échappement transmission ESC échappement
Signe et valeur Les codes 00 à 1F sont utilisés pour le contrôle et la communication Signe et valeur ACK accusé de réception DC1 commande auxiliaire 1
absolue absolue
Complément à 2 contrôle des consoles et imprimantes (ex : retour d’un caractère Complément à 2 FS séparateur de fichier BEL sonnerie
Technique de Technique de DC2 commande auxiliaire 2 GS séparateur de groupe
l’excédent en arrière (BS), retour en début de ligne (CR), tabulation (HT), l’excédent
BS retour en arrière DC3 commande auxiliaire 3
Nombres réels Nombres réels
Virgule fixe
etc...) Virgule fixe RS séparateur d’article HT tabulation horizontale
Virgule flottante
communication (ex : début de texte (STX), fin de Virgule flottante DC4 commande auxiliaire 4 US séparateur d’unité
LF interligne NAK acquittement négatif
communication (EOT), etc...)

11/40 8ième bit 12/40 Extensions du code ASCII

Codage Codage

JM ENJALBERT JM ENJALBERT
enjalbert@laas.fr enjalbert@laas.fr
latin-1 (ISO 8859-1) : codage sur 8 bits : les codes ASCII plus
Codage d’une L’ objet de taille minimale accessible en mémoire possède 8 bits Codage d’une les caractères accentués et particuliers (191 caractères)
information information
Principe (octet) et le code ASCII est défini sur 7 bits (bits 6 à 0), plusieurs Principe Unicode : affecte à chaque caractère un nom et un numéro
Binaire et Binaire et
hexadécimal solutions sont possibles pour le bit de poids fort (bit 7) : hexadécimal
unique (plus de 200 000 caractères décrits)
Caractères Caractères
Code ASCII
le fixer à 0 (le plus simple) Code ASCII UTF-8 : codage sur 1 à 4 octets d’un caractère Unicode.
Autres codes Autres codes
définir deux jeux de caractères : Compatible avec les codes ASCII
Entiers naturels Entiers naturels

Entiers relatifs
les codes 00 à 7F (le bit 7 vaut 0) constituent le code ASCII Entiers relatifs
Signe et valeur standard Signe et valeur Représentation binaire UTF-8 Signification
absolue absolue
Complément à 2 les codes 80 à FF (le bit 7 vaut 1) sont des caractères étendus. Complément à 2 0xxxxxxx 1 octet pour 1 à 7 bits
Technique de Technique de 110xxxxx 10xxxxxx 2 octets pour 8 à 11 bits
l’excédent le bit de poids fort peut aussi être utilisé pour faire du contrôle l’excédent
Nombres réels Nombres réels 1110xxxx 10xxxxxx 10xxxxxx 3 octets pour 12 à 16 bits
de parité, ce qui permet la détection de certaines erreurs de
Virgule fixe Virgule fixe 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 4 octets pour 17 à 21 bits
Virgule flottante transmission. Virgule flottante

UTF-16, UTF-32, ...


13/40 Codage des nombres 14/40 Binaire naturel

Codage Codage

JM ENJALBERT JM ENJALBERT
enjalbert@laas.fr enjalbert@laas.fr
Notons N (A) l’entier naturel, exprimé en décimal, de code binaire A
Codage d’une Le codage des nombres est différent suivant leur nature et différentes Codage d’une sur n bits. Le mot-code A = an−1 an−2 . . . a0 , composé d’une
information information
Principe
techniques de codage coexistent. Principe séquence de n bits, représente l’entier naturel :
Binaire et
hexadécimal
On présentera ici : Binaire et
hexadécimal
Caractères Caractères
Code ASCII
Le codage des entiers naturels (non signés) Code ASCII n−1
Autres codes Autres codes
Le codage des entiers relatifs (signés)
X
Entiers naturels Entiers naturels
N (A) = ai 2i
Entiers relatifs
par signe et valeur absolue Entiers relatifs i=0
Signe et valeur par complément à 2 Signe et valeur
absolue absolue
Complément à 2 par excédent Complément à 2 Exemples :
Technique de Technique de
l’excédent Le codages des nombres réels l’excédent
Le code binaire sur 8 bits A=0010 0001 représente l’entier
Nombres réels
Virgule fixe
en virgule fixe Nombres réels
Virgule fixe
naturel N (A) = 25 + 1 = 33
Virgule flottante en virgule flottante Virgule flottante
Le code de l’entier naturel N (A) = 5 sur 8 bits s’écrit :
A=0000 0101 puisque N(A) = 22 + 1

15/40 Codage d’un entier en binaire naturel 16/40 Gamme représentable

Codage Codage

JM ENJALBERT
enjalbert@laas.fr
JM ENJALBERT
enjalbert@laas.fr Avec n bits, la gamme des nombres représentables est [0, 2n − 1].
Les entiers sont codés sur 1,2,4 ou 8 octets selon les besoins.
Codage d’une
information
Pour déterminer les bits ai du code A d’un entier naturel X Codage d’une
information
Principe
Binaire et
(exprimé en décimal), il faut décomposer X en sommes de Principe
Binaire et
n gamme représentable
hexadécimal puissances de 2. hexadécimal
8 [0 ... 255]
Caractères Caractères
Code ASCII On peut faire cela par divisions successives par 2 Code ASCII
16 [0 ... 65535]
Autres codes Autres codes 32 [0 ... 4295967295] = [0 ... ' 4, 30 109 ]
Exemple : X=13
Entiers naturels
13/2 = 6 reste 1 a0 =1
Entiers naturels
64 [0 ... ' 1, 85 1019 ]
Entiers relatifs Entiers relatifs
Signe et valeur
6/2 = 3 reste 0 a1 =0 Signe et valeur
absolue absolue
En langage C, le choix est fait par les déclarations suivantes :
Complément à 2
Technique de
3/2 = 1 reste 1 a2 =1 Complément à 2
Technique de
l’excédent
1/2 = 0 reste 1 a3 =1 l’excédent
unsigned char ⇒n=8
Nombres réels Nombres réels
Virgule fixe
D’où le code du nombre 13 sur 4 bits : 1101 ou sur 8 bits : 0000 Virgule fixe short unsigned int ⇒ n = 16
Virgule flottante
1101 Virgule flottante
long unsigned int ⇒ n = 32
longlong unsigned int ⇒ n = 64
17/40 Entiers relatifs 18/40 Codage en signe et valeur absolue

Codage Codage

JM ENJALBERT JM ENJALBERT
enjalbert@laas.fr enjalbert@laas.fr

Principe :
Codage d’une Codage d’une
information information
Principe Principe
On code le signe dans le bit le plus à gauche du mot-code et la
Binaire et
hexadécimal
Un entier relatif est un entier qui possède un signe (+ ou -) et une Binaire et
hexadécimal
valeur absolue dans les n − 1 bits restants.
Caractères valeur absolue. Caractères Par convention le bit de signe vaut 0 pour un nombre positif et 1
Code ASCII
Autres codes
Trois techniques principales de codage existent : Code ASCII
Autres codes pour un nombre négatif
Entiers naturels
Codage en signe et valeur absolue Entiers naturels
La valeur absolue est codée en binaire naturel sur n − 1 bits.
Entiers relatifs Entiers relatifs
Signe et valeur Codage en complément à 2 Signe et valeur La gamme des nombres représentables est [−2n−1 + 1, 2n−1 − 1].
absolue absolue
Complément à 2
Technique de
Codage par excédent Complément à 2
Technique de
Inconvénients :
l’excédent l’excédent
Nombres réels Nombres réels
2 codes pour le nombre zéro
Virgule fixe Virgule fixe
Virgule flottante Virgule flottante nécessite de tester le signe avant d’additionner ou de soustraire
2 nombres

19/40 Valeur codée 20/40 Codage par la technique du complément à 2

Codage Codage

JM ENJALBERT JM ENJALBERT
enjalbert@laas.fr enjalbert@laas.fr
Si on code les entiers relatifs sur n bits, il faut pouvoir représenter
Codage d’une Codage d’une
information Soit le mot-code A = an−1 an−2 . . . a0 . Il représente le nombre entier information
autant de nombres négatifs que de positifs.
Principe Principe
Binaire et relatif : Binaire et Une solution consiste à accorder un poids négatif au bit n − 1.
hexadécimal hexadécimal
Caractères
n−2
Caractères Notons Z(A) le nombre relatif de mot-code A = an−1 an−2 . . . a0 .
Code ASCII X Code ASCII
an−1 i Le code A représente l’entier relatif :
Autres codes S(A) = (−1) × ai 2 Autres codes
Entiers naturels Entiers naturels
i=0
Entiers relatifs Entiers relatifs n−2
Signe et valeur Signe et valeur X
absolue
Complément à 2
Exemples : absolue
Complément à 2
Z(A) = −an−1 2n−1 + ai 2i
Technique de Technique de i=0
l’excédent Le code 1000 0001 sur 8 bits représente l’entier relatif : -1 l’excédent
Nombres réels Nombres réels
Virgule fixe
L’entier relatif 2 se code sur 8 bits : 0000 0010 Virgule fixe Exemples :
Virgule flottante Virgule flottante
Le code 1000 0001 sur 8 bits représente l’entier relatif : -127
L’entier relatif 2 se code sur 8 bits : 0000 0010
21/40 Propriétés 22/40 Complément à 2

Codage Codage

JM ENJALBERT JM ENJALBERT
enjalbert@laas.fr enjalbert@laas.fr
n−2
X
Codage d’une Z(A) = −2n−1 an−1 + ai 2i Codage d’une Par définition, le complément à 2 d’un entier naturel N (A) codé
information information
Principe i=0 Principe sur n bits est l’entier naturel N (A)
e tel que N (A) + N (A)e = 2n .
Binaire et Binaire et
hexadécimal n−1
X hexadécimal Exemple sur 4 bits : si N (A) = 12, N (A) = 4
e
Caractères
Code ASCII
= −2n an−1 + ai 2i Caractères
Code ASCII Soit le code binaire A = an−1 an−2 . . . a1 a0
Autres codes Autres codes
i=0 le complément à 1 de A s’écrit : A = an−1 an−2 . . . a1 a0
Entiers naturels Entiers naturels

Entiers relatifs
= −2n an−1 + N (A) Entiers relatifs D’où : A + A = 11111111 soit N (A) + N (A) = 2n − 1
Signe et valeur Signe et valeur
absolue l’examen du bit an−1 permet de connaı̂tre le signe du nombre : absolue soit N (A) + N (A) + 1 = 2n = N (A) + N (A)
e
Complément à 2 Complément à 2
Technique de
l’excédent si an−1 = 0, alors Z(A) = N (A). Le mot-code A représente un Technique de
l’excédent On en déduit Ne (A) = N (A) + 1
Nombres réels nombre positif qui se décode comme un nombre binaire naturel Nombres réels
Soit encore Ae = A + 1
Virgule fixe Virgule fixe
Virgule flottante si an−1 = 1, alors N (A) − Z(A) = 2n soit : N (A) + |Z(A)| = 2n Virgule flottante
Exemple sur 4 bits : A = 1010 A = 0101 Ae = 0110
Par définition du complément à 2, |Z(A)| est le complément à 2
de N (A)

23/40 Codage en complément à 2 en pratique 24/40 Gamme représentable

Codage Codage

JM ENJALBERT JM ENJALBERT
enjalbert@laas.fr enjalbert@laas.fr

Pour coder un entier relatif sur n bits en complément à 2, l’opération


Codage d’une Codage d’une
information dépend donc du signe : information
Principe
Binaire et si le nombre est positif ou nul, prendre son code binaire naturel
Principe
Binaire et La gamme des nombres représentables est [−2n−1 , 2n−1 − 1].
hexadécimal hexadécimal
Caractères sur n bits Caractères
Code ASCII Code ASCII n gamme représentable
Autres codes si le nombre est négatif, trouver le code binaire naturel de son Autres codes
8 [-128 ... +127]
Entiers naturels module sur n bits puis prendre le complément à 2 de ce code. Entiers naturels
16 [-32768 ... +32767]
Entiers relatifs Exemple. Coder -3 sur 4 bits. Le code binaire de 3 est 0011. Le Entiers relatifs
32 [' −2, 15 109 ... ' +2, 15 109 ]
Signe et valeur Signe et valeur
absolue
Complément à 2
code binaire de -3 est donc 1101. absolue
Complément à 2 64 [' −9, 22 1018 ... ' +9, 22 1018 ]
Technique de
l’excédent Autre possibilité : chercher le code A de l’entier naturel Technique de
l’excédent
Nombres réels N (A) = 2n + Z(A) Nombres réels
Virgule fixe Virgule fixe
Virgule flottante Exemple. Coder -3 sur 4 bits. On cherche le code binaire de Virgule flottante

16-3=13. Le code binaire de -3 est donc 1101.


25/40 Codage par la technique de l’excédent 26/40 Pratique du codage par excédent

Codage Codage

JM ENJALBERT JM ENJALBERT
enjalbert@laas.fr Notons Xe (A) le nombre relatif de mot-code A = an−1 an−2 . . . a0 . enjalbert@laas.fr

Codage d’une
Le code A représente l’entier relatif : Codage d’une
information information
Principe
n−1
Principe L’opération de codage d’un entier relatif s’effectue de la façon
Binaire et Binaire et
suivante :
hexadécimal
X hexadécimal
i
Caractères
Xe (A) = ai 2 − e = N (A) − e Caractères
Code ASCII i=0 Code ASCII
1 ajouter l’excédent au nombre à coder
Autres codes Autres codes
Entiers naturels Entiers naturels
2 prendre le code binaire naturel du résultat
Entiers relatifs Ce système est appelé codage excédent e ou encore codage Entiers relatifs Exemple. On travaille avec n = 4 et e = 8.
Signe et valeur
absolue binaire décalé de e ou encore binaire biaisé de e. Signe et valeur
absolue Soit à coder X8 (A) = −3.
Complément à 2 Complément à 2
Technique de Il consiste à décaler les codes des nombres de telle sorte qu’il y Technique de On ajoute l’excédent (−3 + 8 = 5), puis on prend le code binaire de
l’excédent l’excédent
Nombres réels
ait autant de négatifs que de positifs. Nombres réels
5 ⇒ A = 0101.
Virgule fixe Virgule fixe
Virgule flottante
Comme la gamme des nombres représentables est Virgule flottante
[−e, 2n − 1 − e], les valeurs de e peuvent donc être e = 2n−1 ou
bien e = 2n−1 − 1 (par exemple pour n=8, e=128 ou e=127)

27/40 Résumé 28/40 Codage des réels

Codage Codage

JM ENJALBERT JM ENJALBERT
enjalbert@laas.fr enjalbert@laas.fr

Codage d’une En résumé, les différences entre les quatre techniques de codage des Codage d’une
information information Les calculateurs ne manipulent pas que des nombres entiers mais
Principe
nombres entiers étudiées sont visualisées dans le tableau pour des Principe
doivent pouvoir aussi manipuler des nombres réels.
Binaire et
hexadécimal
codes de 4 bits. Binaire et
hexadécimal
Caractères Caractères
Code ASCII
code
bin
binaire
naturel
signe et
val.abs.
compl.
à 2
excéd.
8
code
bin
binaire
naturel
signe et
val.abs.
compl.
à 2
excéd.
8 Code ASCII
Deux techniques de codage pour représenter des réels :
Autres codes A N (A) S(A) Z(A) X8 (A) A N (A) S(A) Z(A) X8 (A) Autres codes
Entiers naturels
0000 0 +0 0 -8 1000 8 -0 -8 0
Entiers naturels
1 la virgule fixe à employer lorsque les réels à manipuler sont à peu
1 +1 +1 -7 9 -1 -7 +1
Entiers relatifs
0001
0010 2 +2 +2 -6
1001
1010 10 -2 -6 +2 Entiers relatifs
prés du même ordre de grandeur
0011 3 +3 +3 -5 1011 11 -3 -5 +3
Signe et valeur Signe et valeur
absolue 0100 4 +4 +4 -4 1100 12 -4 -4 +4 absolue
2 la virgule flottante dans le cas général
0101 5 +5 +5 -3 1101 13 -5 -3 +5
Complément à 2 Complément à 2
6 +6 +6 -2 14 -6 -2 +6
Technique de
l’excédent
0110
0111 7 +7 +7 -1
1110
1111 15 -7 -1 +7 Technique de
l’excédent
A noter que l’ensemble des réels est infini alors que l’ensemble des
Nombres réels Nombres réels
codes pour n donné est fini et égal à 2n . le codage d’un réel introduit
Virgule fixe Connaissant le mot-code, il faut connaitre la convention de codage Virgule fixe donc la plupart du temps une erreur.
Virgule flottante Virgule flottante
pour savoir ce qu’il représente.
29/40 Codage en virgule fixe 30/40 Propriétés

Codage Codage

JM ENJALBERT JM ENJALBERT
enjalbert@laas.fr Soit des nombres codés sur n bits avec m bits pour la partie enjalbert@laas.fr

Codage d’une
fractionnaire. Codage d’une
information La virgule se situe entre le bit de rang m et celui de rang m − 1. information Si on s’intéresse uniquement aux nombres positifs, cette
Principe Principe
Binaire et Le mot-code A = an−1 . . . am , am−1 . . . a0 représente le nombre réel : Binaire et technique permet de représenter 2n réels à partir de 0, espacés
hexadécimal hexadécimal
Caractères Caractères
de 2−m .
Code ASCII n−1
X Code ASCII
Pour coder un réel non représentable de façon exacte, une erreur
Autres codes
ai 2i−m
Autres codes
Entiers naturels
Φm (A) = Entiers naturels est introduite par le codage. Elle est au maximum de 2−(m+1) .
Entiers relatifs
i=0 Entiers relatifs La virgule fixe garantit donc une précision absolue lors de
Signe et valeur Signe et valeur
absolue absolue l’opération de codage
Complément à 2 les bits an−1 . . . am représentent la partie entière, les bits am−1 . . . a0 Complément à 2
Technique de
l’excédent la partie fractionnaire. on peut aussi écrire : Technique de
l’excédent
L’intérêt de cette technique vient du fait que les opérations
Nombres réels Nombres réels d’addition et de soustraction s’effectuent par des opérations
Virgule fixe
Virgule flottante
n−1
X
Virgule fixe
Virgule flottante
entières puisque indépendantes de la position de la virgule
i −m −m
Φm (A) = ( ai 2 ) × 2 = N (A) × 2
i=0

31/40 Virgule fixe et complément à 2 32/40 Exemples

Codage Codage

JM ENJALBERT Pour pouvoir représenter des réels positifs et négatifs, le codage se JM ENJALBERT
enjalbert@laas.fr enjalbert@laas.fr
fait en utilisant la technique du complément à 2
Codage d’une Le mot-code A = an−1 an−2 . . . am , am−1 . . . a0 représente le nombre Codage d’une
information information
Principe réel : Principe Soit un codage avec n = 8 et m = 4.
Binaire et Binaire et
hexadécimal hexadécimal Le code A=1011 0110 représente le nombre :
n−2
Caractères X Caractères
−23 + 21 + 20 + 2−2 + 2−3 = −8 + 2 + 1 + 0, 25 + 0, 125 = −4, 625
Code ASCII Φm (A) = −an−1 2n−1−m + ai 2i−m Code ASCII
Autres codes
i=0
Autres codes
Pour coder Φ4 (A) = 4, 5 :
Entiers naturels Entiers naturels
on peut le multiplier par 24 = 16 et chercher le code de l’entier
Entiers relatifs Entiers relatifs
Signe et valeur soit : Signe et valeur relatif en complément à 2 : Z(A) = 72 soit A = 01001000
absolue absolue
Complément à 2 Complément à 2 on peut aussi chercher séparément le code de la partie entière :
Technique de
l’excédent
Technique de
l’excédent
100, celui de la partie décimale : 1 puis concaténer les deux codes
n−2 et compléter avec des 0 à gauche et à droite : A = 01001000
Nombres réels X Nombres réels
Virgule fixe Φm (A) = (−an−1 2n−1 + ai 2i ) × 2−m = Z(A) × 2−m Virgule fixe
Virgule flottante Virgule flottante
i=0

qui montre que le codage des réels positifs et négatifs en virgule fixe
se ramène à des manipulations d’entiers relatifs.
33/40 Résumé 34/40 Virgule flottante - Normalisation

Codage Codage

JM ENJALBERT JM ENJALBERT En calcul scientifique, les nombres ont des ordres de grandeur très
enjalbert@laas.fr enjalbert@laas.fr
différents, on les représente donc en notation ”scientifique” dans
Codage d’une Codage d’une laquelle seuls les chiffres significatifs et l’ordre de grandeur sont
information information
Principe Principe codés.
Binaire et
hexadécimal
Avantage : Ramène les calculs sur des réels à des calculs sur des Binaire et
hexadécimal Le module d’un nombre réel peut être écrit sous la forme m × B e
Caractères entiers, lesquels sont très rapides. Caractères m la mantisse (réel en virgule fixe)
Code ASCII Code ASCII
Autres codes Inconvénient : Utilisable seulement pour traiter des réels qui ont Autres codes avec : B la base utilisée pour le codage
Entiers naturels le même ordre de grandeur Entiers naturels e l’exposant (entier relatif)
Entiers relatifs
Usage : s’emploie en gestion (euros, centimes) et en traitement Entiers relatifs Pour que la mantisse ne comporte que des chiffres significatifs, elle
Signe et valeur Signe et valeur
absolue
du signal (les convertisseurs analogiques-numériques codent au absolue doit être normalisée, c’est-à-dire que sa partie entière est telle que :
Complément à 2 Complément à 2
Technique de
maximum sur 8, 16 où 32 bits) Technique de m ∈ [B p−1 , B p [ où p vaut 0 ou 1
l’excédent l’excédent
Nombres réels Nombres réels
Exemple en base 10. Soit le nombre x = 0, 00716.
Virgule fixe
Virgule flottante
Virgule fixe
Virgule flottante
En notation scientifique, il s’écrit x = 0, 716 × 10−2 si on adopte
la convention p = 0 (m ∈ [0.1, 1[)
il s’écrit x = 7, 16 × 10−3 si la convention est p = 1
(m ∈ [1, 10[).

35/40 Norme IEEE P754 36/40 Champs du code

Codage Codage

JM ENJALBERT
enjalbert@laas.fr
Pour représenter les nombres réels, tous les processeurs actuels JM ENJALBERT
enjalbert@laas.fr
respectent la norme IEEE P754 qui est devenue le système standard
Codage d’une Codage d’une
information (depuis 1985). information S est le bit de signe. Par convention il vaut 1 pour les nombres
Principe
Binaire et
Elle prévoit trois formats (simple précision, double précision et Principe
Binaire et
négatifs
hexadécimal hexadécimal
précision étendue) F est le code binaire de la partie fractionnaire f de la mantisse
Caractères Caractères
Code ASCII simple précision (32 bits) Code ASCII m codée sur 23 bits comme un réel en virgule fixe.
Autres codes Autres codes
Entiers naturels 31 30 . . . 23 22 ... 0 Entiers naturels La partie entière n’est pas codée, elle est implicite puisque
Entiers relatifs
S E F Entiers relatifs valant toujours 1.
Signe et valeur Signe et valeur
absolue
Complément à 2
absolue
Complément à 2
E est le code de l’exposant sur 8 bits représenté excédent 127
Technique de double précision (64 bits) Technique de (27 − 1). Les valeurs possibles de l’exposant sont
l’excédent l’excédent
Nombres réels
63 62 . . . 52 51 ... 0 Nombres réels e ∈ [−126, +127]
Virgule fixe Virgule fixe
Virgule flottante S E F Virgule flottante Les codes extrêmes sont réservés pour coder des cas spéciaux

La convention est B = 2 et p = 1 ⇒ m ∈ [1, 2[. La mantisse s’écrit


donc sous la forme m = 1.f .
37/40 Valeurs de E réservées 38/40 Expression de R(A)

Codage Codage

JM ENJALBERT JM ENJALBERT
enjalbert@laas.fr enjalbert@laas.fr

Codage d’une Codage d’une


information information
Principe
le code E = 0...0 avec F = 0 est réservé pour coder le nombre Principe
Binaire et
hexadécimal
0, non représentable sous forme normalisée. Binaire et
hexadécimal
Dans cette norme, le mot-code A = S|E |F représente le réel :
Caractères le code E = 0...0 avec F 6= 0 est réservé pour coder des Caractères
Code ASCII Code ASCII
Autres codes nombres dénormalisés (résultats intermédiaires obtenus par Autres codes R(A) = (−1)S × (1 + Φ23 (F )) × 2X127 (E )
Entiers naturels underflow) (débordement par valeur inférieure) Entiers naturels

Entiers relatifs
le code E = 1...1 avec F = 0 est réservé pour coder ∞.
Entiers relatifs La gamme des nombres représentables est [10−38 , 10+38 ] et la
Signe et valeur Signe et valeur
absolue absolue précision relative de 2−23 = 1, 19 × 10−7 , soit de 7 chiffres décimaux
Complément à 2 le code E = 1...1 avec F 6= 0 sert à coder NaN (Not a Complément à 2
Technique de Technique de significatifs.
l’excédent Number). Ce code est utilisé pour signaler un résultat l’excédent

Nombres réels
Virgule fixe
d’opération invalide ou non défini (par exemple ∞ ou 00 ). Nombres réels
Virgule fixe
Virgule flottante Virgule flottante

39/40 Exemple 1 40/40 Exemple 2

Codage Codage

JM ENJALBERT JM ENJALBERT
enjalbert@laas.fr enjalbert@laas.fr

Codage d’une
information
Codage d’une
information
Soit le code d’un réel suivant la norme IEEE P754 :
Principe
Coder le réel R(A) = +3, 0 Principe A = C 6340000h
Binaire et Binaire et
hexadécimal
Il peut être écrit sous forme normalisée : +1, 5 × 21 d’où : hexadécimal Il s’écrit en binaire :
Caractères Caractères
A=1100 0110 0011 0100 0000 0000 0000 0000
Code ASCII 1 S=0 (nombre positif) Code ASCII
Autres codes Autres codes d’où par identification :
Entiers naturels 2 e = 1, N (E ) = 128 : E=1000 0000 Entiers naturels
1 S=1 : nombre négatif
Entiers relatifs Entiers relatifs
3 f = 0, 5 : F=100 0000 0000 0000 0000 0000
Signe et valeur
absolue
Signe et valeur
absolue
2 E=1000 1100 : N (E ) = 140, e = 13 :
Complément à 2 4 donc : A=0100 0000 0100 0000 0000 0000 0000 0000 Complément à 2
Technique de Technique de
3 F= 011 0100 0000 0000 0000 0000 :
l’excédent soit 40400000h en hexadécimal. l’excédent
Nombres réels Nombres réels
f = 0, 25 + 0, 125 + 0, 03125 = 0, 40625 :
Virgule fixe
Virgule flottante
Virgule fixe
Virgule flottante
4 donc : R(A) = −1, 40625 × 213 = −11520

Vous aimerez peut-être aussi