From d44522e9f377f29d57e84d522b46418814df6702 Mon Sep 17 00:00:00 2001 From: Francois Lesueur Date: Thu, 1 Sep 2022 11:13:10 +0200 Subject: [PATCH] ajout cm1 --- README.md | 2 +- cm1-caracteres.md | 83 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 cm1-caracteres.md diff --git a/README.md b/README.md index 7fb5f02..8861be5 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Sur ce dépôt, vous trouverez les notes de cours ainsi que les sujets des TD/TP Le programme prévisionnel est le suivant : * CM : - - CM1 : Codage des caractères + - [CM1](cm1-caracteres.md) : Codage des caractères - CM2 : Codage des entiers et réels - CM3 : Architecture d'un ordinateur - CM4 : Calcul booléen diff --git a/cm1-caracteres.md b/cm1-caracteres.md new file mode 100644 index 0000000..5e6c11b --- /dev/null +++ b/cm1-caracteres.md @@ -0,0 +1,83 @@ +CM1 Codage des caractères - Notes de cours +========================================== + +Introduction +============ + +- Des décodages étranges +- Aperçu dans gedit des 3 fichiers, c'est le même texte +- cat des 3 fichiers, des caractères mauvais +- iconv -f iso8859-15 encodage-utf8.txt donne un autre décodage +- iconv -f utf-8 encodage-iso8859.txt retourne une erreur +- Mais alors, c'est la même chose ou pas la même chose ??? +- Aperçu avec hexdump -C / hd du contenu brut : + - Pareil sur l'essentiel + - Différences là où sont les caractères latins (non US/ASCII) + - Fichier UTF8 plus gros... + +Des octets... +============= + +- Tout n'est que binaire +- Un élément central : l'octet, 8 bits +- Compris donc entre 0 et 28 = 255 (décimal) = 0xFF (hexadécimal) +- (héritage par convention historique de ce pack de 8 bits comme groupe de base) + +La notion de codage +=================== + +- Puisque tout est binaire, pas de lettres fondamentalement +- On peut associer une chaîne binaire à une lettre -> codage +- Plusieurs conventions, c'est une _interprétation_ + +ASCII +===== + +- Table ASCII, étude +- Limites : caractères accentués, cédilles, idéogrammes, cyrilliques, ... + +ISO, CP/Windows +=============== + +- Table ISO8859-15 +- Table Windows1252 +- Même jeu de caractères (en gros), mais pas les mêmes tables (exemple œ)... +- Alors avec des jeux de caractères différents... + +Unicode +======= + +- Une synthèse universelle, un répertoire de l'ensemble des glyphes +- Un procédé en deux étapes : + - notion de point de code unicode -> une valeur + - notion d'encodage de cette valeur -> UTF-8, UTF-16, ... +- En pratique souvent UTF-8 (qui a le bon goût d'être rétro-compatible avec l'ASCII) +- Un caractère peut prendre plusieurs octets, attention à la confusion caractère/octet et chaîne de caractères/tableau d'octets ! +- (Le monde, aujourd'hui, est globalement UTF-8 et donc vos applications devront gérer des chaînes UTF-8 et non des tableaux d'octets) + +_La rétro-compatibilité est très souvent présente sur les technologies qui rencontrent du succès, car c'est ce qui permet leur adoption progressive, sans incompatibilité temporaire, dans un système numérique mondial aux évolutions non synchronisées_ + +Exemple du mail +=============== + +- On s'écrit du texte +- Ce texte est encodé en binaire +- Le binaire est transmis +- Le binaire est décodé chez le destinataire +- Du texte apparaît à l'écran + + +Panorama du cours +================= + +Déroulé : +- Codage des caractères +- Codage des entiers et réels +- Architecture d'un ordinateur +- Calcul booléen +- Histoire de l'informatique et des ordinateurs +- Histoire du libre, de l'open-source et du captif + +Évaluation : +* 1/3 contrôle continu sur les comptes-rendus de TP +* 2/3 examen