Exercices encodage
DonRep 18
Exercices
Exercice 1 *
Voici un message codé en ASCII:
56 49 56 45 20 4C 45 53 20 56 41 43 41 4E 43 45 53 0A
- Les caractères sont-ils notés en décimal ou hexadécimal?
- Convertir le caractère $20_{hex}$ en binaire.
- Le convertir en décimal.
- En s’aidant d’une table ASCII, décoder le message.
- Pour quel raison ne peut-on pas encoder le mot éléphant en ASCII?
Exercice 2 *
- En Unicode, le caractère @ a le point de code U+0040. Convertir le point de code en binaire.
- Combien d’octets sont nécessaires pour encoder ce caractère en UTF8?
- Mêmes questions pour le caractère Ê de point de code U+00CA.
- Mêmes questions pour le caractère € de point de code U+20AC.
Exercice 3 **
- Rappeler le principe de conversion d’un entier décimal en binaire.
- Convertir 42 en binaire.
- Écrire la fonction deci_bin(entier: int) -> str qui convertit l’entier décimal en binaire. La représentation binaire sera renvoyée sous forme d’une chaîne de caractère. Par exemple:
>>> deci_bin(11)
'1011'
- Donner les points de code des lettres du mot Élève.
- Convertir ces points de code en binaire puis en décimal.
La fonction native Python chr(n: int) -> str renvoie le caractère correspondant au point de code n. Le point de code est ici représenté en écriture décimal.
# 'é': point de code U+00E9, soit 233 en décimal
>>> chr(233)
'é'
- Écrire la fonction decoder(code_car: list) -> str qui renvoie le mot correspondant aux points de code (sous forme décimale) stockés dans le tableau code_car.
- Tester la fonction avec les points de codes décimaux de Élève.
Exercice 4 **
- Trouver le rôle des fonctions natives Python ord et hex.
- Écrire la fonction utf8(car: str) -> str qui renvoie le point de code hexadécimal du caractère car.
- Écrire la fonction encoder_hexa(phrase: str) -> list qui renvoie le tableau des points de code hexadécimaux de chaque lettre de phrase.
Exercice 5 **
À retenir
- Une chaîne de caractères est une donnée itérable.
- Une chaîne de caractères est une donnée immuable.
Écrire la fonction remplacer(chaine: str, car1: str, car2: str) -> str qui remplace la lettre car1 par car2 dans le mot chaine.
>>> remplacer("éléphant", "é", "e")
'elephant'