% lien vers le programme entier : 03-20.py
\qrset{height=1.1cm,version=5}\rput(-1,-0.7){
\psframebox{\qrcode{https://idl-live.prepamath.fr/IL1NSI/03-20.py}}}
\vspace*{-10pt}
\enlargethispage*{3em}
\begin{listing}[language=python]{}{03-20.py}
\end{listing}

\newpage

Afin de rendre plus compréhensible le programme, deux fonctions ont été créées: \texttt{convertdecbin(n)} convertit le nombre n (exprimé en décimal) en binaire et retourne sous forme de chaîne de caractères le résultat (c'est la partie issue de l'exercice \ref{algo-conversion-decimal-binaire} du chapitre \ref{chapitre-encodages}).

Ensuite, la fonction \texttt{converthexabin(n)} a été définie, qui convertit le nombre n (exprimé en décimal) en binaire et retourne le résultat sous la forme d'une chaîne de caractères. Dans cette fonction, on parcourt la variable \texttt{n} grâce à la boucle \texttt{for i in n:} et pour chaque caractère \texttt{i} rencontré, on commence d'abord par récupérer la clé correspondant à la valeur \texttt{i} dans le dictionnaire \texttt{dico}, puis on convertit cette valeur (qui est décimale) en binaire à l'aide de la fonction \texttt{convertdecbin}. Ensuite, on teste si la valeur \texttt{h} obtenue a une longueur de 4 bits; si tel n'est pas le cas (\texttt{if len(h)<4}), on complète par des \og 0 \fg{} afin que \texttt{h} ait une longueur de 4 bits. À la fin de ce test, une fois que l'on est assuré que \texttt{h} tient sur 4 bits, on concatène le résultat à la valeur de \texttt{hexa} précédente (\texttt{hexa += h}). Enfin, la variable \texttt{n} étant parcourue en entier, on retourne la valeur de la variable \texttt{hexa}, qui est la conversion demandée.
