Да. Это будет связано с изменениями, и я не рекомендую делать это на C. Это один из тех редких примеров, когда ассемблер все еще может доказать свою ценность, легко заставляя вещи работать в сотни раз быстрее (И я не думаю, что я преувеличиваю это)
Я не претендую общую правильность, но следующее должно вам начать:.
(1) Инициализировать результат к нулю.
(2) Сдвиг делителя как можно больше бит влево, не давая ему стать больше дивиденда.
(3) Вычтите смещенный делитель из дивиденда и добавьте его в результат.
(4) Теперь сдвиг делителя вправо до тех пор, пока он еще раз, он меньше оставшегося дивиденда и для каждого сдвига влево, сдвиг влево на один бит.Вернитесь к (3), если условие остановки не выполняется. (Останов условие должно быть что-то вроде «делитель становится нулевым», но я не уверен.)
Это действительно чувствует себя прекрасно, чтобы вернуться к некоторым проблемам РЕАЛ программирования :-)
Вы также хотите разделить * на * большое количество? – balpha