\begin{algorithme}{Algorithme}
n prend une valeur entière entrée par l'utilisateur
b est une chaîne de caractères vide

Tant que n $\neq$ 0:
   q $\leftarrow$ partie entière de n/2
   reste $\leftarrow$ n-2*q
   On convertit reste en chaîne de caractères
   b $\leftarrow$ reste + b
   n $\leftarrow$ q
Fin du Tant que

Afficher b
\end{algorithme}

\Par\enlargethispage*{\baselineskip}

Notre objectif est de construire une chaîne de caractères, composée de 0 et de 1, en partant de la fin car pour convertir un nombre décimal en binaire, on prend les restes des divisions euclidiennes en partant de la fin. On initialise donc une chaîne de caractères vide (ici, \texttt{b}). Nous voyons sur les conversions faites dans l'exercice \ref{exo-conversion-decimal-binaire} que l'on s'arrête quand le quotient est nul. Notre objectif sera de créer une boucle qui transformera \texttt{n} en le quotient de la division euclidienne de $n$ par 2. La condition pour exécuter les instructions de la boucle est donc \og $n\neq0$ \fg.

%Dans la boucle, on commence par calculer le quotient : c'est la partie entière de $\dfrac{n}{2}$. On affecte le résultat à la variable \texttt{q};
%\item la variable \texttt{reste} représente le reste de la division euclidienne, donc est égale à $n-2q$;
%\item dans la logique utilisée ici, on est obligé de convertir ce résultat (ce nombre) en chaîne de caractères pour pouvoir construire la chaîne de caractères \texttt{b} en mettant bout-à-bout les chaînes \texttt{reste} et \texttt{b} (ce qu'il y avait avant dans \texttt{b}).
%\end{itemize}

\Par

\begin{listing}{En Python}{01-12-01.py}%\nathanliveProgWithoutText
\end{listing}
