L'opération inverse qui, à partir d'un nombre
écrit en base
décimale, consiste à l'écrire en base binaire, s'effectue par divisions
euclidiennes successives de
par 2, en ne conservant que les restes
dans l'ordre inverse où ils ont été obtenus. Par exemple, pour
, le calcul est le suivant :
program binaire;
var nb : string;
nd : integer;
procedure binaire(d : integer; var b : string);
var i, l : integer; aux : string;
begin
i:=1;
repeat
if (d mod 2)=0 then b[i]:='0'
else b[i]:='1';
d:=d div 2;
i:=i+1;
until (d=0);
l:=length(b);
for i:=1 to l do
aux[i]:=b[l-i+1];
b:=aux;
end;
begin
writeln('entrez un nombre');
readln(nd);
binaire(nd,nb);
writeln('la forme binaire de ', nd,' est ', nb);
end.