Codage
Principe de codage
Soit I un ensemble d'informations. Soit un ensemble fini de symboles
appelé alphabet. Les ai sont appelés caractères
de A. Un ensemble ordonné de caractères est appelé
mot. La base du codage est le cardinal de l'ensemble A.
Coder I consiste à faire correspondre à chaque éléments
de I un mot de A. Un codage est redondant si un élément
est associé à plusieurs codes.
Un codage peut être à longueur fixe :
· numéro de téléphone d'un particulier
· numéro de sécurité sociale
· code postal
ou à longueur variable
· alphabet morse
· ADN
Quelques codes
! Ne pas confondre un nombre et sa représentation !
Notation positionelle
La représentation d'un nombre est un codage. La représentation
d'un nombre dans une base b donnée:
Code binaire naturel
Alphabet de 2 caractères : 0 et 1 (caractères binaires
appelés bits)
Correspondance basée sur la représentation des nombres
en base 2.
0 | 000 |
1 | 001 |
2 | 010 |
3 | 011 |
4 | 100 |
5 | 101 |
6 | 110 |
7 | 111 |
? Pourquoi ce tableau ne contient pas le code de 8 ?
Généralement, les bits les plus à gauche
sont appelés poids forts.
Code BCD/DCB
Décimal Codé Binaire : chaque chiffre d'un nombre
est sur codé 4 bits
0 | 0000 |
1 | 0001 |
2 | 0011 |
10 | 0001 0000 |
11 | 0001 0001 |
Ce code simplifie conversion décimal binaire.
Code de Gray
Distance de 1 entre deux mots de code consécutif
0 | 000 |
1 | 001 |
2 | 011 |
3 | 010 |
4 | 110 |
5 | 111 |
6 | 101 |
7 | 100 |
Ce code évite le changement simultané de 2 bits,
et donc les états transitoires indésirables.
Détection d'erreurs
La transformation d'un 0 en 1 ou d'un 1 en 0 est une erreur fréquente
en informatique (problème de transmission, défaillance
d'un circuit, etc...)
Un code redondant peut être utilisé pour détecter
des erreurs.
Exemple : ajout d'un bit (dit bit de parité). Le bit supplémentaire
maintient la parité de l'information :
· 0110 devient 01100,
· 1011 devient 10111
Il existe d'autres codes correcteur d'erreurs, où l'augmentation
de la redondance permet de détecter et corriger une erreur.
Dans le code de Hamming, 3 bits sont ajoutés à quatre
bits de données pour contrôler la parité de
trois groupes de trois bits de données différents.
Codage des données alphanumériques
Face aux multiple possibilités de codage, des organismes
de normalisation ont vu le jour (le plus célèbre
étant l'ISO).
Code ASCII = code employé pour les caractères alphanumériques
(a,b,1,?, ,,,). Code sur 7 bits (+ 1 bit de parité).
· A est codé par 1000001,
· e est codé par 1100101,
· 7 est codé par 0110111,
· ! est codé par 0100001,
· etc...
Unicode = code récent sur 16 bits contenant pratiquement
tous les alphabets existants (employé dans java).
Système de numération
L'homme a 10 doigt. Le système de numération humain
est le système décimal. L'ordinateur a 2 état
significatifs (impulsion électriques). Le système
de numération qu'il emploie est donc le système
binaire.
! L'homme compte sur ses doigts, l'ordinateur
compte sur ses bits.
Conversions binaire-décimale
Base b vers base 10
exprimé en base b(noté ) vers une représentation
en base 10 :
Cas de la partie fractionnaire :
Base 10 vers base b
a0 est le reste de la division entière du nombre par la
base b. Des divisions entières successives par la base
donnent donc tous les ai.
Cas de la partie fractionnaire : sur un principe similaire, des
multiplications successives par la base donnent tous les ai.
Représentation des nombres
négatifs
Signe et valeur absolue
Sur n bits : signe = bit de poids fort (0 : positif, 1 : négatif),
n-1 bits = valeur absolue.
Intervalle de valeurs représentés pour n bits :
[-2n-1 + 1, 2n-1 - 1]
Notations complémentés
Complément à 1: inversion de chaque bit de la valeur
absolue du nombre à représenter.
1 | 110 |
2 | 101 |
3 | 100 |
Intervalle de valeurs représentés pour n bits : [-2n-1 + 1, 2n-1 - 1]
Complément à 2 = complément à 1 + 1
1 | 111 |
2 | 110 |
3 | 101 |
Intervalle de valeurs représentés pour n bits : [-2n-1, 2n-1 - 1]
Notation excédentaire
Ajout au nombre de la valeur d'un excès (souvent translation
de 2n-1, ainsi le bit de poids fort fait office de bit de signe).
Intervalle de valeurs représentés pour n bits avec
un excès de 2n-1 : [-2n-1, 2n-1 - 1]
Intérêt : simplifie toutes les opérations
ou les comparaisons (qui se font uniquement sur des nombres positifs).
Représentation des nombres réels
Plusieurs représentations possibles :
· virgule fixe : revient à manipuler des entiers
(caisses enregistreuses)
· couple (numérateur,dénominateur) : représentation
juste uniquement pour les nombres rationnels
· virgule flottante
Virgule flottante
Un nombre réel est représenté par un signe,
une mantisse m, un exposant e, et une base b.
! La représentation en virgule flottante est la représentation
des réels la plus utilisée.
Il existe une infinité de représentation du même
nombre. Représentation normalisée : pour une base
b, la mantisse est prise dans l'intervalle [1,b[(zéro admet
une représentation particulière).
La précision et l'intervalle de valeurs représentées
dépendent du nombre de bits utilisés pour coder
la mantisee et l'exposant.
Norme IEEE754
· nombres codés sur 32 bits (simple précision),
ou 64 bits (double précision)
· la mantisse appartient à l'intervalle [1,0, 10,0[
(en binaire)
· le seul chiffre à gauche de la virgule étant
toujours 1, n'est pas représenté
· l'exposant est codé avec un excès de 127
(simple précision) ou 1023 (double précision)
Sur 32 bits :
S exposant E mantisse M
1 bits 8 bits 23 bits
Exemple : -5 est codé par 1100 0000 1010 0000 0000 0000 0000 0000
! La norme IEEE 754 est la norme la plus utilisée pour
représenter les réels.
Précision
La représentation des nombre réels sur une machine
se base sur un nombre fini de valeurs. C'est donc une représentation
approchée.
Précision de la représentation = différence
entre les mantisses de deux nombres réels consécutifs.
! La précision ne dépend que de la mantisse.
IEEE 754, simple précision (32 bits) : la précision
est de 2-23.
Les valeurs particulières représentés avec
IEEE 754 :
E M valeur représentée
max 0
max NaN
0 0 0
0 nombres dénormalisés
La valeur (propageable) NaN signifie Not A Number. Elle est pratique pour représenter le résultat de certains calcul (e.g., ).
|
|