133 lines
6.6 KiB
TeX
133 lines
6.6 KiB
TeX
\begin{exercise}[subtitle={Table ASCII}, step={1}, origin={}, topics={ Representation de texte }, tags={ ASCII, Chiffrement }]
|
|
Vous trouverez la table ASCII à la fin de l'exercice.
|
|
|
|
\begin{enumerate}
|
|
\item Combien de caractères sont décrits par cette table?
|
|
\item Quels sont les caractères d'écriture absents de cette table?
|
|
\item Combien de bits sont nécessaires pour encoder un caractère avec la table ascii? Combien d'octets?
|
|
\item Encoder en binaire puis en héxadécimal grâce à la table ASCII le message \Ovalbox{\texttt{NSI <3}}.
|
|
\item Décoder grace à la table ASCII le message
|
|
\begin{center}
|
|
01001101 01100001 01110100 01101000 00100000 00101011 00100000 01010011 01010110 01010100 00100000 00101011 00100000 01010000 01000011 00100000 00111101 00100000 00111100 00110011
|
|
\end{center}
|
|
\item Décoder grace à la table ASCII le message
|
|
\begin{center}
|
|
4D 61 74 68 3A 29
|
|
\end{center}
|
|
\item Le programme de première NSI contient \np{25107} caractères. Quelle sera son poids s'il est numérisé en ASCII? Vous exprimerez le résultat en octet et en bit.
|
|
\end{enumerate}
|
|
\begin{center}
|
|
\includegraphics[scale=0.35]{./fig/ascii_table}
|
|
\end{center}
|
|
\end{exercise}
|
|
|
|
\begin{exercise}[subtitle={Table ASCII et Python}, step={1}, origin={}, topics={ Representation de texte }, tags={ ASCII, Chiffrement }]
|
|
En Python, il existe deux fonctions qui permettent de convertir un caractère en son point de code (lisez place dans la table ASCII pour le moment) en décimal et inversement.
|
|
\begin{itemize}
|
|
\item \mintinline{python}{ord}: caractère vers point de code
|
|
\item \mintinline{python}{chr}: point de code vers le caractère
|
|
\end{itemize}
|
|
\begin{enumerate}
|
|
\item Avec python afficher les 128 craactères de la table ascii (Bonus: faites les apparaitres sur 4 colonnes comme dans la table au dessus).
|
|
\item Comparer le résultat avec la table obtenu.
|
|
\end{enumerate}
|
|
\end{exercise}
|
|
|
|
\begin{exercise}[subtitle={Norme ISO-8859-1}, step={1}, origin={}, topics={ Representation de texte }, tags={ ASCII, Chiffrement }]
|
|
\begin{enumerate}
|
|
\item Chercher la table d'encodage ISO-8859-1 (ou latin-1).
|
|
\item Comparer cette table avec la table ASCII.
|
|
\item Encoder le mot \texttt{a«€éø}
|
|
\end{enumerate}
|
|
\end{exercise}
|
|
|
|
\begin{exercise}[subtitle={Unicode table}, step={2}, origin={}, topics={ Representation de texte }, tags={ ASCII, Chiffrement }]
|
|
La norme Unicode découpe le processus d'encodage en deux parties: le point de code et l'encodage.
|
|
|
|
Vous trouverez les points de code et les encodages correspondant sur le moteur de recherche \url{https://unicode-table.com/fr}.
|
|
|
|
\begin{enumerate}
|
|
\item Compléter le tableau ci-dessous avec les points de code et les encodage (représentée sous la forme qui vous semble la plus familière).
|
|
\begin{center}
|
|
\begin{tabular}{|p{3cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|}
|
|
\hline
|
|
Caractère & Point de code & UTF-8 & UTF-16BE & UTF-32BE \\
|
|
\hline
|
|
I & & & &\\
|
|
\hline
|
|
\euro & & & &\\
|
|
\hline
|
|
$\aleph$ & & & &\\
|
|
\hline
|
|
& U+20B3 & & &\\
|
|
\hline
|
|
& U+1F606 & & &\\
|
|
\hline
|
|
& U+FE9A & & &\\
|
|
\hline
|
|
\end{tabular}
|
|
\end{center}
|
|
\item Quels sont les caractères qui sont inclus dans la norme Unicode?
|
|
\item Quels sont les encodages possibles et quelles sont leur caractéristiques?
|
|
\item Comment est placé la table ASCII dans cette norme?
|
|
\end{enumerate}
|
|
\end{exercise}
|
|
|
|
\begin{exercise}[subtitle={Exploration de l'Unicode}, step={2}, origin={}, topics={ Representation de texte }, tags={ ASCII, Chiffrement }]
|
|
Notebook \texttt{02\_unicode}
|
|
\end{exercise}
|
|
|
|
\begin{exercise}[subtitle={Les strings en Python et cryptographie}, step={2}, origin={}, topics={ Representation de texte }, tags={ ASCII, Chiffrement }]
|
|
Notebook \texttt{03\_str}
|
|
\end{exercise}
|
|
|
|
\begin{exercise}[subtitle={QCM}, step={4}, origin={}, topics={ Representation de texte }, tags={ ASCII, Chiffrement, QCM}]
|
|
\begin{enumerate}[label={\textbf{Question \arabic*:}}, leftmargin=*, wide=0pt]
|
|
\item Quel est un avantage du codage UTF8 par rapport au codage ASCII ?
|
|
\begin{tasks}(2)
|
|
\task il permet de coder un caractère sur un octet au lieu de deux
|
|
\task il permet de coder différentes polices de caractères
|
|
\task il permet de coder les majuscules
|
|
\task il permet de coder tous les caractères
|
|
\end{tasks}
|
|
|
|
\item On considère les codes ASCII en écriture hexadécimale (en base 16).
|
|
|
|
Le code ASCII de la lettre A est 0x41, celui de la lettre B est 0x42, celui de la lettre C est 0x43, etc.
|
|
|
|
Quelle est le code ASCII, en hexadécimale, de la lettre X (c'est la 24ième lettre de l'alphabet usuel)
|
|
\begin{tasks}(4)
|
|
\task 0x58
|
|
\task 0x64
|
|
\task 0x7A
|
|
\task 0x88
|
|
\end{tasks}
|
|
|
|
\item Laquelle de ces affirmations concernant le codage UTF-8 des caractères est vraie ?
|
|
\begin{tasks}(2)
|
|
\task le codage UTF-8 est sur 7bits
|
|
\task le codage UTF-8 est sur 8bits
|
|
\task le codage UTF-8 est sur 1 à 4 octets
|
|
\task le codage UTF-8 est sur 8 octets
|
|
\end{tasks}
|
|
\item Parmi les caractères ci-dessous, lequel ne fait pas partie du code ASCII ?
|
|
\begin{tasks}(4)
|
|
\task a
|
|
\task A
|
|
\task @
|
|
\task é
|
|
\end{tasks}
|
|
\item Dans le bloc <head> d'un fichier HTML, afin d'encoder les caractères avec le standard Unicode/UTF-8 on insère la ligne :
|
|
\begin{center}
|
|
<meta http-equiv="Content -Type" content="text/html; charset=UTF-8">
|
|
\end{center}
|
|
Pourquoi cela ?
|
|
\begin{tasks}(2)
|
|
\task UTF-8 est l'encodage Linux
|
|
\task ASCII est une vieille norme, il est temps d'en changer
|
|
\task UTF-8 est une norme conçue pour permettre un affichage correct des caractères spéciaux sur tout système
|
|
\task UTF-8 est un encodage qui protège mieux contre le piratage informatique.
|
|
\end{tasks}
|
|
\end{enumerate}
|
|
\end{exercise}
|