Codage de l’information
Deux grandes catégories
Codage
des nombres des caractères
Fin
Codage des nombres 1/2
• Présentation du binaire
• Systèmes de numération
• Conversion d’un nombre de la base p à la base q
• Nombres à virgule
• Codage des chiffres et des nombres
Suivant Retour
Unités de mesureUnité Puissance de 2 Octets Ordre Support de stockage (2005)
1 quartet 22 bits
1 octet 23 bits Anciennement 1 caractère
1 Kibioctet 210 octets 1024 octets ~103
1 Mébioctet 220 octets 1 048 576 octets ~106 Disquette : 1,44 Mio Mémoire centrale : 256 Mio
CD-ROM : 655 Mio
1 Gibioctet 230 octets 1 073 741 824 octets ~109 DVD : 4,7 Gio Disque dur : 80 Gio
1 Tebioctet 240 octets 1 099 511 627 776 octets ~1012
1 Pebioctet 250 octets 1 125 899 906 842 624 octets ~1015
Nombre de configurations1 bit 2 bits 3 bits 4 bits N° configuration
01
0 00 11 01 1
0 000 010 100 111 001 011 101 11
0 0000 0010 0100 0110 1000 1010 1100 1111 0001 0011 0101 0111 1001 1011 1101 111
12345678910111213141516
Arbre
0 1
1
1 01
10
00 0
0
11
Sur n bits, il y a 2n configurations distinctes
000 001 010 011 100 101 110 111
Nombre de configurations
Nombre de bits Nombre de configurations
4 24 = 16
5 25=32
6 26 = 64
7 27 = 128
8 28 = 256
16 216 = 65536
Pour représenter N symboles, il faut au moins b bits où2b-1 < N 2b
Retour
Notion de code
ab
zAB
Z01
9
0000 00000000 00010000 00100000 0011
1111 11001111 11011111 11101111 1111
CaractèresNombres
Sacs de billes
O O O O O O O O O O O O O
O O O O O O O O O O O O O
Sacs de 10 billes 2 sacs et 6 billes
Sacs de 16 billes 1 sac et 10 billes
Sacs de 2 billes 1sac 1sac 0sac 1sac 0 reste
Base 10 : 2610
Base 16 : 1A16
Base 2 : 110102
Système de numération
• Système décimal ou Base 10
• 10 symboles : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
• 123 = 1 * 100 + 2 * 10 + 3
• = 1 * 102 + 2 * 101 + 3 * 100
Système de numération
• Système binaire ou Base 2
• 2 symboles : 0, 1
• 1011 = 1 * 23 + 0 * 22 + 1 * 21 + 1 * 20
Système de numération
• Système octal ou Base 8
• 8 symboles : 0, 1, 2, 3, 4, 5, 6, 7
• 123 = 1 * 82 + 2 * 81 + 3 * 80
Système de numération
• Système hexadécimal ou Base 16
• 16 symboles : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,plus six symboles ajoutés A, B, C, D, E, F
• 1AB = 1 * 162 + A * 161 + B * 160
Système de numération
• Base B
• B symboles : x, y, z
• Pour former un nombre, on juxtapose les symboles de cette base.
• On attribue un poids à chaque symbole en fonction de la position occupée dans le nombre
• xyx = x * B2 + y * B1 + x * B0
Forme canonique d’un nombre
NB= an * Bn + an-1 * Bn-1 + an-2 * Bn-2…a2 * B2 + a1 * B1 + a0 * B0
La représentation conventionnelle NB est obtenue en juxtaposant chaque symbole dans l'ordre :
NB = an an-1 an-2 …a2 a1 a0 où ai représente un symbole en base B.
Interprétations d’un nombre
• 11012 =
• 11018 =
• 110110 =
• 110116 =
1 * 23 + 1 * 22 + 0 * 21 + 1 * 20
1 * 83 + 1 * 82 + 0 * 81 + 1 * 80
1 * 103 + 1 * 102 + 0 * 101 + 1 * 100
1 * 163 + 1 * 162 + 0 * 161 + 1 * 160
888 =
8810 =
8816 =
8 n’est pas un symbole de la base 8
8 * 101 + 8 * 100
8 * 161 + 8 * 160
Les 16 premiers nombresBase 2 Base 8 Base 10 Base 16
0000 0 0 0
0001 1 1 1
0010 2 2 2
0011 3 3 3
0100 4 4 4
0101 5 5 5
0110 6 6 6
0111 7 7 7
1000 10 8 8
1001 11 9 9
1010 12 10 A
1011 13 11 B
1100 14 12 C
1101 15 13 D
1110 16 14 E
1111 17 15 F
Retour
Exercices• 50 peut-il être un nombre de la base 5 ?• 50 peut-il être un nombre de la base 8 ?• Forme canonique : 5 * 81 + 0 * 80
• 77 peut-il être un nombre de la base 8 ?• Forme canonique : 7 * 81 + 7 * 80
• FF peut-il être un nombre de la base 16 ?• Forme canonique : F * 161 + F * 160
• Écrire le 17ème nombre • en base 2• 100012
• en base 8 • 218
• en base 16 • 1116
Conversion de B2 à B10
Pour passer de la base 2 à la base 10, il faut appliquer • la forme canonique, • exprimer tous les symboles de la base 2 ainsi que 2 en base 10, • puis calculer en base 10.
Rang 7 6 5 4 3 2 1 0
Poids 27 26 25 24 23 22 21 20
Poids calculé 128 64 32 16 8 4 2 1
Exemple
1011 10102 1 0 1 1 1 0 1 0
128 + 32 + 16 + 8 + 2 =18610
Conversion de B2 à B10
Rang 7 6 5 4 3 2 1 0
Poids 27 26 25 24 23 22 21 20
Poids calculé 128 64 32 16 8 4 2 1
Exemple
0000 11112 0 0 0 0 1 1 1 1
8 + 4 + 2 + 1 =1510
Conversion de B2 à B10
Rang 7 6 5 4 3 2 1 0
Poids 27 26 25 24 23 22 21 20
Poids calculé 128 64 32 16 8 4 2 1
Exemple
0001 00002 0 0 0 1 0 0 0 0
16 =1610
Conversion de B2 à B10
Rang 7 6 5 4 3 2 1 0
Poids 27 26 25 24 23 22 21 20
Poids calculé 128 64 32 16 8 4 2 1
Exemple
1010 10102 1 0 1 0 1 0 1 0
128 32 8 2 17010
Conversion de B10 à B2
Méthode des divisions successives : Pour convertir un nombre N10 de la base 10 en
un nombre N2 en base 2, il faut diviser le nombre N10 puis ses quotients successifs
Qi par la base 2 jusqu’à l’obtention du quotient nul, convertir les restes en base 2 et
inverser leur ordre.
ApplicationConversion du nombre 1310 en base 10 en son nombre correspondant en base 2.
132
1 6 2
0 3 2
1 1 2
1 0 Quotient nul
1 1 0 1 2
Conversion de B10 à B2
112
1 5 2
1 2 2
0 1 2
1 0 Quotient nul
10112
Conversion de B10 à B16
2610 16
10 1 16
1 0
1A16
Conversion de B10 à B16
10010 16
4 6 16
6 0
6416
Conversion de B10 à B16
25510 16
15 15 16
15 0
FF16
Conversion de B10 à B2
2610 2
0 13 2
1 6 2
0 3 2
1 1 2
1 0
1 10102
Conversion de B10 à B2
10010 2
0 50 2
0 25 2
1 12 2
0 6 2
0 3 2
1 1 2
1 0
110 01002
Conversion de B10 à B2
255 2
1 127 2
1 63 2
1 31 2
1 15 2
1 7 2
1 3 2
1 1 2
1 0
1111 11112
Conversion entre B2 et B16
0001 1010
1 A
Regroupement par 4 : Pour passer de la base 2 à la base 16, il suffit de regrouper les bits par 4 et de traduire chaque groupe en son symbole correspondant dans la base 16.
Dégroupement par 4 : Pour passer de la base 16 à la base 2, il suffit de traduire chaque symbole de la base 16 à sa configuration correspondante sur 4 bits en base 2.
retour
Conversion de B2 à B16
1 1010
1 A
Binaire Hexa
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F
110 0100
6 4
1111 1111
F F
Conversion de B16 à B2
Binaire Hexa
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F
6 4
0110 0100
A B
1010 1011
5 E
0101 1110
Stratégie
• B10 B2
• Passer de B10 à B16 par divisions successives
• puis de B16 à B2 par dégroupement
10010 16
4 6 16
6 0
6 4
0100 0110
Stratégie
• B2 B10
• Passer de B2 à B16 par regroupement
• puis de B16 à B10 par application de la forme canonique
0001 1010
1 A
1A16 = 1 * 161 + 10 * 160
= 16 + 10
= 2610
Nombres à virguleForme canonique définissant la partie décimale
NB = a-1 * B-1 + a-2 * B-2 + a-3 * B-3 + … + a-n * B-n
Exemple en binaire 0,1012 = 1 * 21 + 0* 22 + 1 * 23
Rang 1 2 3 4 5
Poids 21 22 23 24 25
Poids calculé 0,5 0,25 0,125 0,0625 0,03125
Exemple 1 0 1 0 0
0,625 = 0,5 0,125
Nombres à virgule : ConversionPour convertir en base 2, la partie fractionnaire d'un nombre en base 10, il faut multiplier les parties fractionnaires successives par 2 et conserver la partie entière, jusqu'à ce que la précision suffisante soit obtenue ou que la partie fractionnaire soit à zéro.
Exemples
625 375 14
1 250 0 750 0 28
0 50 1 5 0 56
1 0 1 0 1 12
0,62510 -> 0,1012 0,37510 -> 0,0112 0,1410 -> 0,0012
retour
Chiffres <-> ConfigurationsConfigurations DCB
8-4-2-1Code +3 Aiken
2-4-2-1 Aiken 2-4-2-1
Autre configCode 5 dt 2
0 0 0 0 0 0 11000
0 0 0 1 1 1 00011
0 0 1 0 2 2 00101
0 0 1 1 3 0 3 00110
0 1 0 0 4 1 4 01001
0 1 0 1 5 2 5 01010
0 1 1 0 6 3 6 01100
0 1 1 1 7 4 7 10001
1 0 0 0 8 5 2 10010
1 0 0 1 9 6 3 10100
1 0 1 0 7 4
1 0 1 1 8 5
1 1 0 0 9 6
1 1 0 1 7
1 1 1 0 8
1 1 1 1 9
Retour
Codage des nombres 2/2
• Codage en binaire pur
• Codage en binaire complément à 2
• Représentation des nombres réels
Retour
Codage en binaire pur
Les entiers naturels sont codés en binaire pur. Cela signifie que le nombre en base 10 est converti en base 2 et que le signe n'est pas représenté.
Sur b bits, il y a 2b configurations disponibles.
La simple précision correspond à des entiers codés sur 2 octets, soit 16 bits. 0 n 216 – 10 n 65 535
La double précision,correspond à des entiers codés sur 4 octets, soit 32 bits. 0 n 232 – 1
0 n 4 294 967 295
Retour
Tous les entiers ne sont pas représentés !
Exemple 12 en binaire pur
• Représenter 12 sur un quartet, un octet, 2 octets
12 = 8 + 4 = 23 + 22
Quartet : 1100
Octet : 0000 1100
Deux octets : 0000 0000 0000 1100
Exemple 18 en binaire pur
• Représenter 18 sur un quartet, un octet, 2 octets
18 = 16 + 2 = 24 + 21
Cet entier a besoin de 5 bits
Quartet : ?
Octet : 0001 0010
Deux octets : 0000 0000 0001 0010
Amplitude de la représentation
• Représenter 66000 sur 2 octets• 216-1 = 65 535 < 66 000• 66 000 nécessite le 17ème bit• Entier double : 4 octets : • 66 000 = 65 536 + 256 + 128 + 64 + 16
= 216 + 28 + 27 + 26 + 24
0000 0000 0000 0001 0000 0001 1101 0000
Codage des nombres négatifsConfiguration
sur 4 bitsBinaire signé Complément à 2
0 000 + 0 + 0
0 001 + 1 + 1
0 010 + 2 + 2
0 011 + 3 + 3
0 100 + 4 + 4
0 101 + 5 + 5
0 110 + 6 + 6
0 111 + 7 + 7
1 000 - 0 - 8
1 001 - 1 - 7
1 010 - 2 - 6
1 011 - 3 - 5
1 100 - 4 - 4
1 101 - 5 - 3
1 110 - 6 - 2
1 111 - 7 - 1
Binaire signé
3-3
00111011
1110
soit -6 !!!
Complément à 2
3-3
0011
1101
1 0000
soit 0
Construction du complément à 2
• Codification : la somme d’un nombre et son opposé x + (-x) = 0
• Soit x un nombre en base 2 sur 4 bits
• Soit X le nombre obtenu à partir de x en échangeant les 0 et les 1
• Par construction : x + X = 1111
• 1111 est le précédent de 1 0000 soit 24
• 1111 est 24 – 1
• Donc x + X = 24 -1
• Donc –x = X - 24 + 1
• Or 24 correspond à 1 0000 qui utilise 5 bits alors que la configuration est limitée à 4 bits.
• -x = X + 1
• X est appelé complément à 1. Il est obtenu en échangeant les 0 et les 1.
• -x est appelé complément à 2. Il est obtenu en ajoutant 1 au complément à 1
Codage en complément à 2
x = (X + 1) mod 24
X est appelé complément à 1. Il est obtenu en échangeant les 0 et les 1.-x est appelé complément à 2 de x. Il est obtenu en ajoutant 1 au complément à 1.
Exemple 1 x 310 0 0 1 1 x ? 1 1 0 1
X 1 1 0 0 X 0 0 1 0
x 310 1 1 0 1 x 310 0 0 1 1
Exemple 2 x 510 0 1 0 1 x ? 1 0 1 1
X 1 0 1 0 X 0 1 0 0
x 510 1 0 1 1 x 510 0 1 0 1
Retour
Interprétation 1111 0000
• Quel est le nombre représenté par 1111 0000 ?• Il faut connaître le mode de représentation• Binaire pur27 + 26 + 25 + 24 = 128 + 64 + 32 + 16 = 240• Binaire signé -111 000 = -(26 + 25 + 24) = -(64 + 32 + 16) = -112 • Complément à 21111 0000 est un nombre négatif0000 1111 Complément à 1+ 10001 0000 soit 24 donc c’est -16
Interprétation 1010 1010
• Quel est le nombre représenté par 1010 1010 ?• Il faut connaître le mode de représentation• Binaire pur27 + 25 + 23 + 21 = 128 + 32 + 8 + 2 = 170• Binaire signé -010 010 = -(25 + 23 + 21) = -(32 + 8 + 2 ) = -42 • Complément à 21010 1010 est un nombre négatif0101 0101 Complément à 1+ 10101 0110 soit 26 + 24 + 22 + 21donc c’est -85
Représentation des réels
Les nombres réels sont représentés en notation scientifique. Le nombre est écrit sous forme normalisée : signe S, mantisse 1 M < B, base B et exposant E : S . M . BE Exemple 9,7510 = 0000 1001,112 Soit 1,00111 23
12,62510= 0000 1100,1012 Soit 1,100101 23
Dans la norme IEEE 754, aussi appelée Little Endian, le nombre réel est codé sur quatre octets, soit 32 bits, en simple précision ou sur 8 octets double précision.
Type réel Signe Exposant Mantisse Total
Simple précision 1 bit 8 bits 23 bits 32 bits
Double précision 1 bit 11 bits 52 bits 64 bits
Exemple du réel 9,75• 9,7510 -> 1001,112 Conversion en base 2 soit • Normalisation 1,00111 23
• Signe : 0 • Mantisse : 00111 à compléter sur 23 bits• Exposant : 3 + 127 = 130 = 128 + 2 = 27 + 21 soit 1000 00102
Type réel Sg Exposant Mantisse Nombre réel
Simple précision 0 100 0001 0 0011100 00000000 00000000
9,7510
Notation hexadécimale
41 1C 00 00 41 1C 00 0016
Soit en Little Endian : 00 00 1C 41
Retour
Exemple du réel 12,625• 12,62510 -> 1100,1012 Conversion en base 2 soit • Normalisation 1,100101 23
• Signe : 0 • Mantisse : 100101 à compléter sur 23 bits• Exposant : 3 + 127 = 130 = 128 + 2 = 27 + 21 soit 1000 00102
Type réel Sg Exposant Mantisse Nombre réel
Simple précision 0 100 0001 0 1001010 00000000 00000000
12,62510
Notation hexadécimale
41 4A 00 00 41 4A 00 0016
Soit en Little Endian : 00 00 4A 41
Retour
Exemple Little Endian 00 DC 97 C4
• Signe : 1 signe négatif • Exposant 1000 10012 = 27 + 23 + 20 = 128 + 8 + 1 = 137
Retrait de 127 de l’exposant : 137 – 127 = 10• Mantisse Rajouter l’unité 1,0010111 11011100 00000000 * 210
Soit 1 0010111 110,11100 00000000Partie entière : 100 1011 1110 soit 4 BE16 F. Canonique : 4 * 162 + 11 * 161 + 14 * 160
= 4 * 256 + 11 * 16 + 14 = 1214Partie décimale : 0,111 = 2-1 + 2-2 + 2-3 = 0,5 + 0,25 + 0,125 = 0,875
• Résultat -1214,875
Type réel Sg Exposant Mantisse Nombre réel
Simple précision 1 100 0100 1 0010111 11011100 00000000
-1214,87510
Notation hexadécimale
C4 97 DC 00 C4 97 DC 0016
Soit en Little Endian : 00 DC 97 C4
Retour
Codage des caractères 1/2
• Notion de code
• Le Morse
• Le code Baudot
• Le code ISO à 6 bits
• Le code ASCII
• Le code EBCDIC
Suivant Retour
Codage des caractères 2/2
• Les normes ISO 8859-N
• Unicode
• Les algorithmes UTF
• Codage d’une page Web
Retour
0 - - - - - A . - Allo N - . Noé
1 . - - - - B - ... Bonaparte O - - - Ostrogoth
2 . . - - - C - . - . Coca-Cola P . - - . Psychologie
3 . . . - - D - .. Docile Q - - . - Quoquoriquo
4 . . . . - E . Et R . - . Ramoneur
5 . . . . . F .. - . Farandole S ... Salade
6 - . . . . G - - . Gondole T - Thon
7 - - . . . H .... Hilarité U .. - Ultrason
8 - - - . . I .. Ici V ... - Valparaiso
9 - - - - . J . - - - Jiromoto W . - - Wagon-Post
K - . - Kohinor X - .. - Xrocadéro
L . - .. Limonade Y - . - - Yolimoto
M - - Moto Z - - .. Zoroastre
Retour
Le Morse
Poids faible 0 1 2 3 4 5 6 7
fort 000 001 010 011 100 101 110 111
0 00 Rés 5 9 Esp Rés , .
1 01 Interlg ) 4 Rés 8 0 : ;
2 10 3 " * ? ' 6 Rés /
3 11 - 2 Appel 7 1 (
Poids faible 0 1 2 3 4 5 6 7
fort 000 001 010 011 100 101 110 111
0 00 Rés T O Esp H N M
1 01 Interlg L R G I P C V
2 10 E Z D B S Y F X
3 11 A W J U Q K
Upper Case
Lower Case
Retour
Code Baudot
Poids faible 0 1 2 3 4 5 6 7 8 9 A B C D E F
fort 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
0 00 SP HT LF VT FF CR SO SI ( ) * + , . /
1 01 0 1 2 3 4 5 6 7 8 9 : ; $ = & ´
2 10 NUL A B C D E F G H I J K L M N O
3 11 P Q R S T U V W X Y Z [ £ ] ESC DEL
Retour
Code ISO
Poids faible 0 1 2 3 4 5 6 7 8 9 A B C D E F
fort 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
0 000 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
1 001 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
2 010 SP !1 " # $ % & ' ( ) * + , . /
3 011 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4 100 @ A B C D E F G H I J K L M N O
5 101 P Q R S T U V W X Y Z [1 \ ] 1 ^1 _1
6 110 ` a b c d e f g h i j k l m n o
7 111 p q r s t u v w x y z { | } ~ DEL
Retour
Code ASCII
Rechercher le code du 0 et du 9, en binaire, en hexadécimal et en décimal
Rechercher le code du A et du Z en binaire, en hexadécimal et en décimal
Idem pour a et z
Code EBCDIC Extended Binary Coded Decimal Interchange Code, normalisé sur 8 bits. 8ème bit à 0
Poids Faible 0 1 2 3 4 5 6 7 8 9 A B C D E F
fort 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
0 0000 NUL SOH STX ETX PF HT LC DEL EOM VT FF CR SO SI
1 0001 DLE DC1 DC2 DC3 RES NL BS IL CAN EM iFS iGS iRS iUS
2 0010 FS BYP LF ETB ESC SM ENQ ACK BEL
3 0011 SYN PN RS US EOT DC4 NAK SUB
4 0100 SP ç1 . < ( + |1
5 0101 & ! 1 $ * ) ; 1
6 0110 — / , % _1 > ?
7 0111 : # @ ' = "
Suivant
Code EBCDIC B8 = 0
Code EBCDIC Extended Binary Coded Decimal Interchange Code, normalisé sur 8 bits. 8ème bit à 1
Poids Faible 0 1 2 3 4 5 6 7 8 9 A B C D E F
fort 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
8 1000 a b c d e f g h i
9 1001 j k l m n o p q r
A 1010 s t u v w x y z
B 1011
C 1100 { A B C D E F G H I
D 1101 } J K L M N O P Q R
E 1110 \ S T U V W X Y Z
F 1111 0 1 2 3 4 5 6 7 8 9
Retour
Code EBCDIC B8 = 1
La norme ISO 8859-1 ou Latin-1 ou Europe Occidentale
Poids faible 0 1 2 3 4 5 6 7 8 9 A B C D E F
fort 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
A 1010
¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯
B 1011
° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿
C 1100
À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï
D 1101
Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß
E 1110
à á â ã ä å æ ç è é ê ë ì í î ï
F 1111
ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ
Suivant
ISO 8859-1
ISO 8859-15 ou Latin - 9
Poids faible 0 1 2 3 4 5 6 7 8 9 A B C D E F
fort 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
A 1010 ¡ ¢ £ € ¥ Š § š © ª « ¬ ® ¯
B 1011 ° ± ² ³ Ž µ ¶ · ž ¹ º » Œ œ Ÿ ¿
C 1100 À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï
D 1101 Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß
E 1110 à á â ã ä å æ ç è é ê ë ì í î ï
F 1111 ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ
Suivant
ISO 8859-15
Jeu de caractères CP1252 ou WinLatin1
Poids faible 0 1 2 3 4 5 6 7 8 9 A B C D E F
fort 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
8 1000 € ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ Ž
9 1001 ‘ ’ “ ” • – — ˜ ™ š › œ ž Ÿ
A 1010
¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯
B 1011
° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿
C 1100
À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï
D 1101
Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß
E 1110
à á â ã ä å æ ç è é ê ë ì í î ï
F 1111
ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ
Retour
CP 1252
Unicode
• Chaque caractère est codé sur 2 octets.
• Unicode offre 65 536 configurations– Les symboles de toutes les langues peuvent
être représentés.– Les caractères des langues latines sont
représentées sur 2 octets au lieu d’un seul, => taille des fichiers est doublée
Retour
L’algorithme UTF-8
codage UTF-8
0vvvvvvv 1 octet codant 1 à 7 bits
110vvvvv 10vvvvvv 2 octets codant 8 à 11 bits
1110vvvv 10vvvvvv 10vvvvvv 3 octets codant 12 à 16 bits
11110vvv 10vvvvvv 10vvvvvv 10vvvvvv 4 octets codant 17 à 21 bits
Les algorithmes UTF, Unicode Transformation Format, décrivent des ruses pour réduire à un octet, le codage d’un caractère Unicode qui s’exprime normalement sur 2 octets.
Retour
Algorithme UTF-8 A
codage UTF-8
0vvvvvvv 1 octet codant 1 à 7 bits
110vvvvv 10vvvvvv 2 octets codant 8 à 11 bits
1110vvvv 10vvvvvv 10vvvvvv 3 octets codant 12 à 16 bits
11110vvv 10vvvvvv 10vvvvvv 10vvvvvv 4 octets codant 17 à 21 bits
A 4 1
Hexa 0100 0001
UTF-8 0100 0001
Le caractère latin A est codé sur les 7 premiers bits. En UTF-8 il tient sur 1 octet.
Algorithme UTF-8 é
codage UTF-8
0vvvvvvv 1 octet codant 1 à 7 bits
110vvvvv 10vvvvvv 2 octets codant 8 à 11 bits
1110vvvv 10vvvvvv 10vvvvvv 3 octets codant 12 à 16 bits
11110vvv 10vvvvvv 10vvvvvv 10vvvvvv 4 octets codant 17 à 21 bits
é E 9
Hexa 1110 1001
UTF-8 1100011 10101001
Le caractère accentué é utilise le 8ème bit. En UTF-8 il est codé sur 2 octets.
Nb octets
Algorithme UTF-8 €
codage UTF-8
0vvvvvvv 1 octet codant 1 à 7 bits
110vvvvv 10vvvvvv 2 octets codant 8 à 11 bits
1110vvvv 10vvvvvv 10vvvvvv 3 octets codant 12 à 16 bits
11110vvv 10vvvvvv 10vvvvvv 10vvvvvv 4 octets codant 17 à 21 bits
€ 2 0 A C
Hexa 0010 0000 1010 1100
Le caractère accentué € utilise 14 bits. En UTF-8 il est codé sur 3 octets.
UTF-8 11100010 10000010 10101100
3 octets
Codage d’une page WebContent-Type de l'en-tête HTTP d'un message :HTTP/1.1 200 OKContent-Length: …Content-Type: text/html; charset:ISO-8859-1;Server: …Content-Location: …Date: …Last-Modified: …
Métabalise d’un document HTML :<head><meta http-equiv= "Content-Type" content="text/html; charset=iso8859-1"></head>
Retour
FIN
C’est tout pour aujourd’hui
Mes remerciements pour votre participation