Aller au contenu

Activités IV)

Activité IV.01


En utilisant la table ASCII :

  • Quel est le code décimal du "g" minuscule en ASCII ?
  • Quel est le code hexadécimal du "g" minuscule en ASCII ?
  • Quel est le code binaire du "g" minuscule en ASCII ?

Activité IV.02


  • La norme ASCII est codée sur combien de bits ? On peut alors coder combien de caractères ?
  • La norme ISO-8859-1 est codée sur combien de bits ? On peut alors coder combien de caractères ?
  • La norme UNICODE contient environ 100 000 caractères ! Il faudrait combien de bits pour coder un caractère quelconque ?

Activité IV.03


Quel est le code binaire du "E" minuscule Unicode codé avec UTF-8 ?

Activité IV.04


Quel est le code binaire du "!" minuscule Unicode codé avec UTF-8 ?

Activité IV.05


Dans un éditeur de textes (Thonny ou autre), créer un fichier essai.txt. Celui-ci sera au format "Plain text", ce qui signifie qu'il ne contient que le caractères tapés.

  • Y écrire "Matinees" (sans accent) et sauvegarder. Regarder la taille de ce fichier codé par défaut en UTF-8. Sans surprise, il fait 8 octets.
  • Modifier ce texte en "Matinées" (avec l'accent). Vérifier que sa nouvelle taille est de 9 octets. Le "é" est codé sur deux octets en UTF-8.
  • Rechercher des caractères de code UNICODE plus élevés pour mettre en évidence leur codage sur 3 voire 4 octets.

Activité IV.06


Dans un terminal, taper la commande iconv -l. Vous allez voir apparaître la liste énorme des normes d'encodage de caractères. Vive "UTF-8" !

  • Créer un fichier mon_utf8.txt et écrire "Bonjour.", puis sauvegarder. Il fait 8 octets.
  • Dans un terminal, utiliser la commande suivante pour le convertir en UTF-16 : iconv -f UTF-8 -t UTF-16 mon_utf8.txt mon_utf16.txt.
  • Ce fichier ne fait pas tout à fait le double de la taille précédent.
  • Faire plusieurs essais pour comprendre ce qui se passe au niveau de la taille.

Activité IV.07


Reprendre vos deux fichiers de l'exercice précédent et les ouvrir avec l'éditeur en ligne https://hexed.it/. Vous allez pouvoir lire le contenu de chaque octet, par défaut en hexadécimal.

Pour une meilleure interface, aller dans les paramètres et ne garder cocher que : - Entier 8-bit - Type de caractères UTF-8 - Binaire

  • Cliquer sur un des octets pour bien le comprendre.
  • En UTF-8, vous pouvez voir le codage d'un caractère comme le "é" par exemple (2 octets).
  • Vérifier que tous les fichiers codés en UTF-16 commencent par les deux mêmes octets.

Activité IV.08


Compléter la procédure ascii_hex(chaine) qui affiche à l'écran les codes ASCII au format hexadécimal d'une chaîne de caractères chaine.

def ascii_hec(chaine) :
    ...

Activité IV.09


L'algorithme rot13 est un algorithme de chiffrement qui consiste à décaler de 13 caractères chaque lettre d'un texte. Par exemple, le mot python est transformé en clguba.

Écrire, en Python, une fonction rot13(chaine) en supposant que la chaîne passée en argument ne contient que des caractères entre a et z (en minuscule) et éventuellement des espaces (uniquement le caractère ).

Votre fonction ne doit coder que les lettres de l'alphabet (elle ne touche donc pas aux espaces). Elle renvoie, en sortie, une chaîne de caractères.

def rot13(chaine) :
    ...

Activité IV.10


Pour cet exercice, il faut utiliser les points de codes des lettres. ON observera attentivement la table ASCII.

  1. Écrire une fonction lettre_majuscule(c) qui prend en paramètre une lettre minuscule c et qui renvoie la lettre majuscule correspondante.
  2. Écrire une fonction majuscules(phrase) qui à partir d’une phrase écrite en minuscules renvoie la même phrase écrite en majuscules.

Les caractères qui ne sont pas des lettres minuscules restent inchangés.