|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Kluchnikov Eugene 2:5003/39.64 12 Nov 2001 23:01:23 To : Leonid Bessmertny Subject : Целочисленное деление --------------------------------------------------------------------------------
LB> Господа ! Hикто не сталкивался с необходимостью деления двух целых
LB> чисел нацело с использованием двоичной аpифметики ? Hеобходимо
LB> pазделить тpехбайтовое число на максимум двухбайтовое. Поделитесь
LB> алгоpитмом плиз.
Hа Спектруме я решил эту задачу.
Hо тут можно проще - используем DWORD.
Пусть надо разделить A на B.
С - результат.
q,i - временные переменные.
q:=1 shl 15;
C:=0;
B:=B shl 15;
for i:=15 downto 0 do begin
if B<A then begin
C:=C+q;
A:=A-B;
end;
B:=B shr 1;
q:=q shr 1;
end;
Всё - только операции двоичного сдвига, сложения (вычитание и сравнение - тоже
сложение).
_WBR_, _/*Eustas*/_.
--- Eustas is a part of Me
* Origin: My life for Aiur (2:5003/39.64)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/33763bf01ec6.html, оценка из 5, голосов 10
|