Самый быстрый алгоритм dec -> bin на Pascal Подскажите, пожалуйста, какой самый быстрый алгоритм преобразования числа в двоичное из десятичного можно реализовать на 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)

21 Авг 2019 в 06:57
313 +1
0
Ответы
1

Самый быстрый и эффективный способ преобразования числа из десятичной системы счисления в двоичную на Pascal это использование битовых операций. Вот пример такого алгоритма:

procedure decToBin(num: Int64);
var
i: Integer;
begin
for i := 63 downto 0 do
begin
write((num shr i) and 1);
end;
end;

В данном случае, функция decToBin принимает число типа Int64 и использует сдвиг вправо оператора shr в сочетании с операцией and для извлечения битов из числа и вывода их в двоичной форме.

Этот алгоритм должен быть быстрым и эффективным для больших чисел типа Int64 в сравнении с другими методами.

20 Апр в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 577 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир