• Aucun résultat trouvé

CODAGE DES INFORMATIONS

N/A
N/A
Protected

Academic year: 2022

Partager "CODAGE DES INFORMATIONS"

Copied!
33
0
0

Texte intégral

(1)

CODAGE DES INFORMATIONS

(2)

Introduction

„

COMMUNICATION

Entité 1 Entité 2

Homme Machine

Langage

Langages de programmation Représentations

Circuits

?

électroniques

(3)

Introduction

„ L ’ordinateur est constitué de circuits électroniques (systèmes binaires) donc toute communication se fait en utilisant un code binaire

„ éléments de communication:

– caractères alphabétiques – nombres

– dessins – musiques – couleurs – sons – etc

(4)

Représentation - Interprétation

„

La machine travaille avec des chaînes de bits (valeur 0 ou 1) qui permettent de représenter les différents

éléments sus-cités.

„

Pour chaque type de valeurs il faut définir un code ou une représentation.

„

Avec n bits on peut représenter 2

n

valeurs différentes.

(5)

Représentation - Interprétation

„

Deux processus differents:

Chaînes de caractères :objets concrets

interprétation représentation

Valeurs représentées : notions abstraites

(6)

Codage des nombres

„

Graphismes utilisés

0 1 2 3 4 5 6 7 8 9 A B C D E F binaire

octal

décimal

hexadécimal

(7)

Codage des nombres

„

Représentation par une chaîne de symboles (chiffres):

c

n

c

n-1

c

n-2

... c

1

c

0

– cn : caractère de poids fort – c0 : caractère de poids faible

„

Interprétation en base b:

cn x bn + cn-1 x bn-1 + cn-2 x bn-2... c1 x b1 +c0 x b0

Exemples:

100112 = 1x24+0x23+0x22+1x21+1x20 =1910 A316= 10 x16 + 3 = 16310

(8)

Passage d ’une base à une autre

1. Base décimale vers une base b

Divisions successives par b jusqu’à un quotient égal à 0 base 10 Æbase 2 Base 10 Æ base 16

26

2

2 2

2 13

6

3

1 2

0 1

1

1 0

0

26

10

=11010

2

436

16

16 16

27

1

0 13

1 4

436

10

=1D4

16

(9)

Passage d ’une base à une autre

2. Regroupements par paquets Condition:

une base est une puissance de l ’autre

(il peut être nécessaire de compléter le dernier paquet ( de poids fort) par des « 0 »)

0111 1110 0001 base 2

base 16 Paquets de 4 car 16=2

4

7 2 3 4

111 010 011 100

base 8 base 2 Paquets de 3 car 8=2

3

7 E 1

(10)

Codage des nombres

„

Pour les parties fractionnaires nous allons mettre en place deux traductions entre binaire et décimal.

„

Pour traduire en binaire une partie fractionnaire on multiplie par deux la partie fractionnaire et on garde à chaque fois la partie entière ainsi obtenue

(le nombre d'itérations influe sur la précision du calcul) :

0, * 2 = ,

0, * 2 = ,

0, * 2 = ,

0, * 2 = ,

0, * 2 = ,

0,

(11)

Codage des nombres

„

Dans le sens réciproque, on multiplie chaque symbole binaire de la partie entière par une puissance négative de 2 :

0,

*2

-1

*2

-2

*2

-3

*2

-4

(12)

Codage des nombres

Cette méthode de traduction des parties fractionnaires en binaire peut conduire à des problèmes d'arrondi.

Exemple: 0.777 à coder en binaire sur un octet :

0.777 * 2 = 1.554 0.554 * 2 = 1.108 0.108 * 2 = 0.216 0.216 * 2 = 0.432 0.432 * 2 = 0.864 0.864 * 2 = 1.728 0.728 * 2 = 1.456 0.456 * 2 = 0.912

0.11000110

(13)

Codage des nombres

„

Poids des bits

Dans un nombre binaire, la valeur d'un bit, appelée poids, dépend de la position du bit en partant de la droite.

Le poids d'un bit croît d'une puissance de deux en allant de la droite vers la gauche.

Nombre: 1 1 1 1 1 1 1 1 Poids: 27 = 128 26 = 64 25 = 32 24 = 16 23 = 8 22 = 4 21 = 2 20 = 1

„

Conversions

Pour convertir un mot binaire en nombre décimal, il suffit de multiplier la valeur de chaque bit par son poids, puis d'additionner tous les résultats.

Exemple: 01012= 23x0 + 22x1 + 21x0 + 20x1 = 8x0 + 4x1 + 2x0 + 1x1 = 5

„

L'octet

(en anglais byte ou B avec une majuscule dans les notations) est une unité d'information composée de 8 bits.

(14)

Codage des caractères

Le code ASCII

(American Standard Code for Information Interchange)

Norme de codage dont la limitation a été de coder un caractère par octet en utilisant un des bits comme contrôle de parité :

2

7

= 128 valeurs possibles chacune étant associée à une valeur entre 0 et 127.

„

Le code ASCII contient :

Les lettres de l'alphabet (minuscules et majuscules) – Les chiffres

– La ponctuation

– Des caractères plus informatique de contrôle

(15)

Codage des caractères

Les premiers caractères (de 0 à 31) sont les caractères de contrôle pour les transmissions, numérotés dans l'ordre suivant :

CTR@, CTR-A à CTR-Z, CTR[, CTR/, CTR] , CTR CTR, CTR-

32 33 ! 34 " 35 # 36 $ 37 % 38 & 39 ' 40 ( 41 ) 42 * 43 + 44 , 45 - 46 . 47 / 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9 58 : 59 ; 60 < 61 = 62 > 63 ? 64 @ 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _ 96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z 123 { 124 | 125 } 126 ~ 127

(16)

Codage des caractères

Afin de moduler le jeu de caractères disponibles, une extension définit les caractères 129 à 255 : le 8-ième bit ne sert plus de contrôle de parité mais de complément d'information.

C'est le code EBCDIC (extended binary coded decimal interchange code) plus connu sous le nom de code ASCII étendu.

Pour les PC cette extension est décomposée en : Lettres accentuées

Caractères semi-graphiques Lettres de l'alphabet grec

Quelques (rares) symboles mathématiques

(17)

Codage des entiers naturels

„

Codage binaire (pur):

On effectue la traduction en binaire de l'entier. Sur n positions binaires on peut coder des valeurs comprises entre 0 et 2n -1 : – Sur un octet on peut coder des valeurs de 0 à 255

– Sur deux octets on peut coder des valeurs de 0 à 65535 – Etc …

„

Décimal codé binaire (DCB)

Chaque chiffre décimal est codé sur 4 bits 945610=1001 0100 0101 0110

„

Code de Gray

Le passage d ’une valeur à la suivante modifie un seul bit:

0: 00 1: 01 2: 11 3: 10

(18)

Codage des entiers relatifs

„

Complément à 2.

– Sur n bits on peut coder les nombres allant de -2n-1 à 2n-1-1

• 1 bit pour le signe

• (n-1) bits pour la valeur – Pour un nombre positif :

• la valeur correspond au code binaire

• le bit de signe est à 0

– Dans le cas d ’un nombre négatif:

• la valeur est obtenue à partir du code binaire

• le bit de signe est à 1

(19)

Codage des entiers relatifs

„

Complément à 2.

Codage d ’un nombre négatif

Valeur Signe

1. Inversion globale: 10 et 0 1

2. Ajout de 1

(20)

Codage des entiers relatifs

„

Complément à 2.

Code d ’un nombre négatif x est égal au code de 2n+x Exemple:

Codage sur 2 bits

code(-1) = code(4-1)

= code(3)

= 11

(21)

Codage des entiers relatifs

„

Complément à 2.

Codage du nombre négatif x

• Parcours du code de –x (positif) des bits de poids faible vers les bits de poids fort jusqu’au premier 1 (inclus)

• Inversion de tous les autres bits de poids fort Exemple:

codage de –26 sur 6 bits code de 26: 011010

100110

(22)

Codage des entiers relatifs

„

Complément à 2.

-2 : 1 1111110 -1 : 1 1111111 0 : 0 0000000 1 : 0 0000001 2 : 0 0000010

– Sur 1 octet (8 bits) on codera :

– Comme plus grand positif 01111111 = 127 – Comme plus petit négatif 10000000 = -128 – Sur 2 octets (1- bits) on codera :

– Comme plus grand positif 011...11 = 32767 – Comme plus petit négatif 100...00 = -32768

(23)

Codage des entiers relatifs

„

Binaire signé:

sur n bits :

– 1 bit de signe (bit de poids fort : n-1)

• 1 pour un nombre négatif

• 0 pour un nombre positif

– (n-1) bits pour coder la valeur absolue Exemples:

-8 : 10001000 8 : 00001000 Problème:

2 codes pour le zéro : 10000000 et 00000000

(24)

Codage des entiers relatifs

„

Complément à 1:

– codage binaire pour un nombre positif

– complémentation de tous les bits pour un nombre négatif Exemple:

8 : 00001000 -8: 11110111

– On a deux codes pour zéro

• 00000000

• 11111111

(25)

Codage des entiers relatifs

„

Codage biaisé:

codage binaire du nombre augmenté de 2n-1-1 (127 pour un octet) Exemple: sur 4 bits

-7: 0000 -4: 0011 0 : 0111 1 : 1000 6 : 1011 8 : 1111

(26)

Codage des réels : la norme IEEE-754

„

Représentation des réels en virgule flottante

Codage sous la forme d'un triplet évalué sur base binaire : signe, valeur ou mantisse et exposant .

Exemple: (en décimal)

5487,643 = (-1)s * 54876430 * 10-4

5487,643 = (-1)s * 00054876 * 10-1

Forme normalisée :

le premier chiffre (de poids fort) doit être différent de 0

mantisse=54876430 exposant=-4

signe=0

mantisse=00054876 exposant=-1

signe=0

(27)

Codage des réels : la norme IEEE-754

„ On admet deux représentations:

La simple précision, sur 4 octets 23 bits de mantisse

8 bits d'exposant : codage biaisé

Valeur([S,E,M]flt) = (-1)S*2(exposant) *mantisse exposant=E-127

mantisse=1,M22 ….. M0

– précision sur 7 chiffres

– la plus grande valeur absolue: 1038

La double précision, sur 8 octets 52 bits de mantisse

11 bits d'exposant :

(28)

Opérations sur les chaînes de bits 1. Opérations logiques:

a.Opérations bit à bit:

1011 0010 1011

OR 1011

0010 0010

AND

NOT (1101) = 0010

(29)

Opérations sur les chaînes de bits

b.Opérations de décalage:

• Décalage à droite (DECD):

– Les bits de rang n à 1 sont décalés d'une position vers la droite;

– Le bit de rang n du résultat est mis à 0.

– DECD(1101) = 0110

• Décalage à gauche (DECG):

opération inverse de DECD DECG(1101) = 1010

(30)

Opérations sur les chaînes de bits

„

Utilisation des opérateurs logiques:

1 Sélection de champ

2 Fusion de champs

xx....x 1001111 xx....x

00....0 1111111 00....0

00....0 1001111 00....0

Champ à sélectionner et

Masque

=

c1 xx...x

ou c2

xx..x

c1 00...0 c2 00..0

ÉS LE CT OI

N =

c1 c2

(31)

Opérations sur les chaînes de bits

„

Opérateurs arithmétiques : Addition (ADD):

Addition de deux nombres de n bits et résultat sur n+1 bits

Xi Yi ri si ri+1

0 0 0 0 0

0 0 1 1 0

0 1 0 1 0

0 1 1 0 1

1 0 0 1 0

1 0 1 0 1

1 1 0 0 1

1 1 1 1 1

L'opération est appliquée sur les bits de rang zéro vers le rang n.

r : bit de retenue (résultat "correct" sur n bits si rn+1=0)

(32)

Opérations sur les chaînes de bits

„

Soustraction (SOUS):

Soustraction de deux nombres de n bits et le résultat est n+1 bits.

Xi yi di si di+1

0 0 0 0 0

0 0 1 1 1

0 1 0 1 1

0 1 1 0 1

1 0 0 1 0

1 0 1 0 0

1 1 0 0 0

1 1 1 1 1

L'opération est appliquée sur les bits de rang zéro vers le rang n.

d : bit de débordement (résultat "correct" sur n bits si d =0)

(33)

Opérations sur les chaînes de bits

„

Multiplication (Mult):

L’opération de la multiplication est réalisée de manière similaire à la base décimale:

Exemple: 1101*0110 1101 x 0110

---

0000 1101 1101

---

1001110

Références

Documents relatifs

Pour ce faire le bloc de bits correspondant est obtenu en mettant sur chaque colonne le code ASCII d’un caractère à transmettre, en commençant par le premier caractère sur la

Code de Hamming avec parité

Suite de nombres pour coder l’information (Couleur) contenue dans chaque petit carré qu’on appelle pixel (PICture ELement) :. Image en noir et blanc 1 bit pour

vA chaque temps élémentaire, il peut y avoir l’envoie d’un signal v Valence (V) - d’un signal c’est le nombre de bits transmis par temps élémentaire (par état physique)..

Le présent document décrit le codage UTF-16 de la norme Unicode/ISO-10646, traite les problèmes de mise en série de l'UTF-16 comme flux d'octets pour transmission sur

longueur d'onde du faisceau laser, si bien que l'onde se réfléchissant dans le creux parcourt une moitié de longueur d'onde de plus (un quart à l'aller plus un quart au retour)

Cependant, la différence de couleur juste perceptible varie selon la teinte et la luminosité ; le système RVB ayant opté pour la simplicité, il faut plus de différence de valeurs

Le niveau phonétique : étudie la façon dont le signal est produit et perçu :. •