Codage des caractères Table ASCII (American Standard Code for
Transcription
Codage des caractères Table ASCII (American Standard Code for
Codage des caractères Table ASCII (American Standard Code for Information Interchange) exemple Y correspond à x59 en hexadécimal c’est-à-dire ……. en décimal (d'abord le chiffre de la colonne). Le codage ASCII utilise ……… d'octets pour un caractère. On peut coder ……….caractères avec la table ASCII (regarder le décimal correspondant au dernier caractère) Le dernier bit servait, à l'époque où les transmissions était mauvaises à détecter des erreurs. Evidemment la table ASCII, créée par des anglophones ne contient aucun des caractères accentués de la langue française. On a donc créé différentes tables avec des compléments. Table Windows Latin-1 souvent appelée ANSI Pour avoir le code, on concatène le chiffre de la ligne et celui de la colonne Exemple : é codé xE9 en ANSI ce qui donne …….. Pour la partie supérieure on reconnaît la table ASCII. Il faut ………octet pour un caractère. Evidemment ceci ne suffit pas : il manque de nombreux caractères utilisés dans toutes les langues du monde ! Les différentes manières d'encoder les caractères créent des problèmes que l'on a tous rencontrés : #Reponse lisible un peu moins mathématique (en français). print("La derivée du polynome") Un consortium composé d’informaticiens, de chercheurs, de linguistes et de personnalités représentant les Etats ainsi que les entreprises s'est donc occuper d’unifier toutes les pratiques en un seul et même système : la norme UNICODE. L’Unicode est la table de correspondance entre les caractères et son code (Charset). Cette table est compatible avec la table ASCII, mais seulement partiellement avec la table ANSI Prenons é : en UNICODE : x00E9 (noté généralement U+00E9) ce qui donne bien ……..……………………………… mais le ™ a pour code ANSI ………….. en UNICODE U+ 2122 (en hexadécimal) ce qui correspond à…………………... ! Attention, l'UNICODE n'est qu'un code numérique (charset) attribué à chaque caractère… Si on voulait utiliser l'UNICODE pour encoder les caractères, en admettant qu'on se limite à ce qu'on appelle le plan 0, c’est-à-dire les caractères qui se codent avec 4 chiffres en hexadécimal (65536 caractères), il faudrait 16 bits, soit deux octets…. En ANSI, il ne faut qu'un seul octet…. Pour un texte "normal", on occuperait donc presque deux fois plus de place en mémoire ! L'une des principales normes d'encodage des caractères est l'Utf-8. Les principaux caractères (pour les anglosaxons !), ceux de la table ASCII, sont encodés sur un octet, mais d'autres sont encodés sur deux, trois ou quatre octets. On voudrait décoder : 01000000 11100010 10000100 10100010 11000011 10111100 Evidemment, pour décoder, il faut savoir combien d'octets lire pour avoir un caractère (et comment les lire) ! Ce sont les bits de poids forts qui l'indiquent : • un octet commençant par 0 se lit tout seul. par exemple : b01000001 correspond à 65 qui est A (aussi bien en UNICODE que dans les tables ANSI et ASCII) • un octet commençant par 110 se lit avec le suivant qui commence obligatoirement par 10 (et pour obtenir le charset du caractère on enlève le 110 et le 10, on assemble les autres bits) par exemple : 11000001 10100000 correspond à b00001100000 qui vaut ……, donc à ……. en hexadécimal….donc à …….. • un octet commençant par 1110 se lit avec les deux suivants qui commenceront par 10 selon le même principe • un octet commençant par 11110 se lit avec les trois suivants qui commencent par 10 Exemple : décoder 01000000 11100010 10000100 10100010 11000011 10111100 (0-1-6 fois 0- 3 fois 1- 3 fois 0-1 -0-1-4 fois 0-1-2 fois 0-1—0-1-3 fois 0-1-0-2 fois 1- 4 fois 0- 3 fois1 -0-4 fois1-2fois 0) Ceci correspond à ……….caractères. Donner l'écriture binaire puis hexadécimale de ces caractères, puis décoder.
Documents pareils
Activité 4 : CODAGE ALPHANUMERIQUE Classe de Terminale S
Ouvrir le fichier avec l’éditeur hexadécimal et vérifier les codes binaires utilisés par rapport à la table Latin-1 ou
Windows-1252 fournies. Repérer sur la copie d’écran les caractères étendus pa...