Aller au contenu

C2 Représentation des entiers et des caractères

Activités

▪ Activité 1 : Numération binaire

Fiche d'activité

▪ Activité 2 : Numération hexadécimale

Fiche d'activité

▪ Activité 3 : Encodage des caractères

En utilisant la video ci-dessus et en faisant éventuellement vos propres recherches sur le Web, répondre brièvement aux questions suivantes :

  1. L'encodage ascii
    1. Combien de caractères pouvaient être codés en ascii ?
    2. Expliquer rapidement pourquoi ce système était limité et à du être étendu
  2. L'encodage Latin-1
    1. Sur combien de bits était encodé chaque caractère ?
    2. Combien de caractères au maximum étaient représentés ?
    3. Ce système était-il universel ?
  3. L'encodage utf-8
    1. Un caractère est-il toujours encodé sur le même nombre de bits ?
    2. Cet encodage est-il compatible avec l'ancienne norme ascii ?

Cours

Vous pouvez télécharger une copie au format pdf du diaporama de synthèse de cours présenté en classe :

Diaporama de cours

Attention

Ce diaporama ne vous donne que quelques points de repères lors de vos révisions. Il devrait être complété par la relecture attentive de vos propres notes de cours et par une révision approfondie des exercices.

QCM

1. Quelle est l'écriture en base 2 du nombre \((154)_{10}\) ?

  • a) 10011100
  • b) 10011001
  • c) 00011010
  • d) 10011010
  • a) 10011100
  • b) 10011001
  • c) 00011010
  • d) 10011010

2. Que peut-on dire de l'écriture en base 2 d'un nombre divisible par 2 ?

  • a) Elle ne contient pas de 0
  • b) Elle se termine par 0
  • c) Elle ne contient qu'un seul 1
  • d) Elle contient deux 1
  • a) Elle ne contient pas de 0
  • b) Elle se termine par 0
  • c) Elle ne contient qu'un seul 1
  • d) Elle contient deux 1

3. Quelle est l'écriture en base 10 du nombre \((01101100)_{2}\) ?

  • a) 216
  • b) 108
  • c) 54
  • d) 4
  • a) 216
  • b) 108
  • c) 54
  • d) 4

4. Quelle est l'écriture en base 16 du nombre \((165)_{10}\) ?

  • a) 95
  • b) A5
  • c) B5
  • d) C5
  • a) 95
  • b) A5
  • c) B5
  • d) C5

5. En base 12, combien il y a-t-il de chiffres ?

  • a) 10
  • b) 11
  • c) 12
  • d) 13
  • a) 10
  • b) 11
  • c) 12
  • d) 13

6. Si l'écriture en base 2 d'un nombre ne comporte qu'un seul 1, alors ce nombre :

  • a) n'est pas une puissance 2
  • b) est une puissance de 2
  • c) est divisible par 2
  • d) n'est pas divisible par 2
  • a) n'est pas une puissance 2
  • b) est une puissance de 2
  • c) est divisible par 2
  • d) n'est pas divisible par 2

7. Quelle est l'écriture en base 10 du nombre \((B2)_{16}\) ?

  • a) 112
  • b) 162
  • c) 178
  • d) 194
  • a) 112
  • b) 162
  • c) 178
  • d) 194

8. Pour écrire les nombres entre 1 et 100 en base 2, on a besoin au maximum de :

  • a) 5 chiffres
  • b) 6 chiffres
  • c) 7 chiffres
  • d) 8 chiffres
  • a) 5 chiffres
  • b) 6 chiffres
  • c) 7 chiffres
  • d) 8 chiffres

9. Quelle est l'affirmation exacte ?

  • a) Le codage UTF-8 est sur 7 bits.
  • b) Le codage UTF-8 est sur 1 octet.
  • c) Le codage UTF-8 est sur 1 à 4 octets.
  • d) Le codage UTF-8 est sur 4 octets.
  • a) Le codage UTF-8 est sur 7 bits.
  • b) Le codage UTF-8 est sur 1 octet.
  • c) Le codage UTF-8 est sur 1 à 4 octets.
  • d) Le codage UTF-8 est sur 4 octets.

10. En Python, un nombre en écriture hexadécimale commence par :

  • a) 0b
  • b) 0x
  • c) 0$
  • d) 0#
  • a) 0b
  • b) 0x
  • c) 0$
  • d) 0#

11. En Python, quelle fonction permet de convertir un nombre en écriture binaire ?

  • a) bin
  • b) hex
  • c) chr
  • d) binary
  • a) bin
  • b) hex
  • c) chr
  • d) binary

Exercices

▪ Exercice 1 : Passer d'une base à l'autre

Recopier et compléter le tableau de conversion suivant :

Ecriture décimale Ecriture binaire Ecriture hexadécimale
\((201)_{10}\) ... ...
... ... \((EA)_{16}\)
\((57)_{10}\) ... ...
\((00100001)_2\)
\((128)_{10}\) ... ...
\((163)_{10}\) ... ...
... ... \((5B)_{16}\)
... \((10010101)_2\) ...
... \((10010010)_2\) ...

▪ Exercice 2 : Un peu de reflexion

  1. Quel est le plus grand entier positif écrit en utilisant 10 chiffres en base 2 ?
  2. Que peut-on dire d'un nombre dont l'écriture en base 2 ne contient qu'un seul chiffre 1 ?
    1. En base 10, comment reconnaît-on un nombre divisible par 10 ?
    2. L'écriture en base 2 d'un nombre divisible par 2 se termine forcément par quel chiffre ? Justifier.
    3. De façon générale, soit \(b\) un entier supérieur ou égal à 2, que peut-on dire de l'écriture en base \(b\) d'un nombre divisible par \(b\) .
  3. En base 10, un million s'écrit avec 7 chiffres, combien en faut-il pour l'écrire en base 2 ?

▪ Exercice 3 : Énigme

Il manque des chiffres (remplacés par des ?) dans le nombre binaire suivant : \(?001??111?\)

  1. Retrouver les chiffres manquants en utilisant les indices suivants:
    • il n'y a pas de zéros non significatifs dans ce nombre
    • ce nombre est divisible par 2
    • il y a un nombre impair de 0 dans l'écriture binaire de ce nombre
    • l'écriture décimale de ce nombre dépasse \((600)_{10}\)
  2. Donner l'écriture décimale de ce nombre.
  3. Donner son écriture hexadécimale

▪ Exercice 4 : Un peu de Python

  1. Lancer Python en ligne de commande, comme vu dans le chapitre précédent.
  2. Tester la fonction bin de Python, en affichant par exemple bin(201) et bin(57). Rapprocher les résultats obtenus avec les réponses de l'exercice 1. Émettre une hypothèse sur cette fonction.
  3. Valider votre hypothèse en faisant afficher l'aide de la fonction bin.
  4. Reprendre les questions précédentes pour la fonction hex.

▪ Exercice 5 : Code ASCII

  1. Le code ascii de A est 65 et celui de a est 97. Ecrire ces deux codes en binaire.
  2. Sachant que l'ordre des codes suit l'ordre alphabétique (donc le code de B est 66), écrire les codes binaires de B et de b.
  3. Même question pour C et c. Que remarquez-vous ?
  4. Le code ascii binaire de P est \(10100000\), quel est celui de p ?
  5. Le code ascii du zéro est 48, l'écrire en binaire. Ce code a-t-il été choisi au hasard ?

▪ Exercice 6 : Message secret

0x420x720x610x760x6f0x200x210x200x560x6f0x750x730x200x610x760x650x7a0x200x64
0xe90x630x6f0x640xe90x200x6c0x650x200x6d0x650x730x730x610x670x65
Parviendrez-vous à décoder le message secret ci-dessus ?

Aide

Un indice : ascii

▪ Exercice 7 : Algorithme des divisions successives

En utilisant l'algorithme des divisions successives :

  1. Convertir \(6771_{10}\) en base 2
  2. Convertir \(6771_{10}\) en base 16
  3. Vérifier le résultat précédent en effectuant la conversion du nombre obtenu à la question 1. en base 16.
  4. Mêmes questions pour \(9753\)

Aide

Cet exercice impose l'utilisation de l'algorithme des divisions successives, on pourra donc se référer au cours et refaire les exemples qui s'y trouvent en cas de difficultés.

▪ Exercice 8 : Le parachute de perseverance

En février 2021, le robot Perseverance a atterrit sur Mars, en déployant un parachute : Parachute de perseverance Le motif du parachute cache un message codé en binaire, le décoder en utilisant les informations suivantes :

  • Un mot est codé sur chacun des trois anneaux intérieurs
  • les caractères sont représentés sur 10 bits
  • La lettre A est codée 1, la lettre B est codée 2 et ainsi de suite
  • l'anneau extérieur code des coordonnées gps de la forme trois groupes de chiffres suivi d'une lettre (N ou S) puis de nouveau 3 groupes de chiffres suivi d'une lettre (E ou W)

Parachute de perseverance

Pour aller plus loin

  • Visiter le site Msg2Mars pour coder votre propre message en suivant le même principe
  • Le service Nominatim d'openstreetmap vous permettra de retrouver un lieu à partir de ces coordonnées gps

Humour d'informaticien

Si vous ne comprenez pas la blague suivante c'est qu'il faut revoir le chapitre ! 10 types of people