|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Sashka Yackubtchick 2:5054/29.54 19 Apr 2002 20:18:46 To : All Subject : Замена деления на константы умножением. --------------------------------------------------------------------------------
Тут обсуждалось в своё время сабж.
Вобщем несколько людей в разное время независимо открыли один из способов.
В частности я пользовался своим. Считал вручную magic number. Hедавно написал
крохотный GUIшный утиль для получения числа. Поскольку эха программёрская,
я могу дать и утиль и исходник где описывается алгоритм.
Если к этому есть интерес, и конечно разрешение модератора заюючить.
Размер утиля и исходника крохотный (всё чистый асм). Примеры описывают
как получить целую часть частного в edx. Где деление на степень двойки -
программа об этом сообщает и даёт пример со сдвигом (1 такт) где нет -
показывает как это можно сделать с mul + shift ~ 10 тактов.
При использовании стандартного div на это уходит минимум 41 такт.
Вообщем решайте, пожалуйста, нужно это вам или нет.
В этот раз во вражеские конференции посылать алгоритм не стал - пусть сами
подписываются на наши эхи и читают если им интересно :)
Размер архива с утилём и исходником ~ 2,5 кб. В uue наверно будет 3 кб.
Hаписано под Win32. В других ОС работать не будет соответсвенно.
Пока!
Sashka, The Svin.
--- GoldED/W32 3.00.Beta1+
* Origin: Svin, Perm, Russia (2:5054/29.54)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/33843cc07eef.html, оценка из 5, голосов 10
|