Подскажите, пожалуйста, какой самый быстрый алгоритм преобразования числа в двоичное из десятичного можно реализовать на Pascal?
Уже есть варианты:
1. Рекурсия:
function bin(a: integer):integer;
begin
if a>=2 then
bin(a div 2);
write(a mod 2);
end;
2. «Игра» со строками:
while n>0 do begin
if n mod 2 = 0 then
s:=s+'0'
else begin
s:=s+'1';
n:=n-1;
end;
n:=n div 2;
end;
for i:=length(s) downto 1 do
write(s[i]);
end;
3. И самое обычное, простое решение задачи:
while a>=1 do
begin
i:=i+1;
b[i]:=a mod 2;
a:=a div 2;
end;
n:=i;
for i:=n downto 1 do
write(b[i]);
Потребление памяти не важно, важно время выполнения и возможность перевода чисел типа int64 (-9223372036854775808..9223372036854775807)