Существуют очень разные методы деления в зависимости от числа, которое будет обработано. Для целых чисел метод сдвига и вычитания, данный другими, будет работать нормально. Для чисел с плавающей запятой, однако, может быть быстрее сначала вычислить обратную величину знаменателя, а затем умножить это число на числитель.
Вычисление обратного знаменателя не так уж плохо; это делается путем уточнения последовательных приближений. Пусть g будет вашим предположением для 1 / d. Для лучшего предположения используйте g '= g (2-й б). Это сходится квадратично, поэтому вы удваиваете цифры точности при каждом улучшении.
Пример: вычисление обратной величины 3.5.
Ваше первоначальное предположение 0,3. Вы вычисляете 0,3 * 3,5 = 1,15. Ваше скорректированное предположение составляет 0,3 * (2 - 1,15) = 0,285. Уже довольно близко! Повторите процесс, и вы получите 0,2857125, а третья попытка получит 0,2857142857.
Есть несколько ярлыков. В плавающей запятой вы можете извлечь степени десяти или степени двух, в зависимости от числовой базы вашей машины. И для скорости за счет большего использования памяти вы можете использовать предварительно вычисленную таблицу для чисел в диапазоне от 1 до b (где b - ваша числовая база), чтобы получить предположение, которое непосредственно близко к требуемой обратной величине и сохранить один или два шага уточнения.
Имейте в виду, что, как и в случае умножения и смущения Колмогорова в 1960 году его учеником Анатолием Карацубой, вы никогда не знаете, когда будет найден более быстрый или лучший метод. Никогда не отказывайся от своего любопытства.