LINUX.ORG.RU

Как реализуется программное деление?

 , , ,


0

2

С умножением всё предельно ясно, а вот как сделать деление? Допустим, в нашем ассемблере нет команды DIV, есть только вычитание и сравнение с нулём.
Вопрос — как делить?

★★★★★

Варианты разные: https://en.wikipedia.org/wiki/Division_algorithm

Если степень двойки, то дешевле всего будут сдвиги. Некоторые оптимизируют свои алгоритмы под эту лазейку, но это уже ручная работа.

Bfgeshka ★★★★★
()
Последнее исправление: Bfgeshka (всего исправлений: 1)
Ответ на: комментарий от CYB3R

В стандарте C89 есть div/ldiv, в C99 еще lldiv/imaxdiv. Но судя по ОП-посту, интересуют именно алгоритмы?

deadNightTiger ★★★★★
()
Ответ на: комментарий от CYB3R

Какие есть альтернативы?

найти библиотеку под bsd лицензию, сами алгоритмы искать в инете и написать лично

dimon555 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.