Почему операция разделения обычно использует больше ресурсов на компьютере? - PullRequest
6 голосов
/ 25 февраля 2011

Я читаю С книгу. В разделе Арифметическое выражение они говорят:

«Для деления обычно используется больше ресурсов. Чтобы избежать деления, мы умножаем, а не делим. Например, мы умножаем на 0,5, а не делим на 2,0.»

Почему Отдел обычно использует больше ресурсов? Кто-нибудь может дать мне подробное объяснение, пожалуйста?

Большое спасибо.

1 Ответ

6 голосов
/ 25 февраля 2011

Двоичное умножение просто с помощью крестьянского алгоритма - вы в основном сдвигаете, а затем суммируете: http://en.wikipedia.org/wiki/Multiplication_algorithm#Peasant_or_binary_multiplication

Бинарное деление намного сложнее, так как это последовательность вычитаний (например, длинное деление, которое вы, возможно, делали в школе). Основной класс алгоритма называется 'radix', пример которого вы можете увидеть здесь: http://www.bearcave.com/software/divide.htm

Запомните - сначала измерьте, а затем оптимизируйте. Гораздо проще поддерживать код, соответствующий проблемной области, чем код, который уже оптимизирован.

...