Я пытаюсь реализовать длинное деление для бигнумов. К сожалению, я не могу использовать такую библиотеку, как GMP, из-за ограничений встроенного программирования. Кроме того, я хочу научиться выполнять интеллектуальные упражнения. До сих пор у меня сложение и умножение выполнялись с использованием массивов байтов любой длины (поэтому каждый байт подобен цифре с основанием 256).
Я просто пытаюсь начать реализацию подразделения / модуля, и я хочу знать, с чего начать? Я нашел много высокооптимизированного (иначе нечитаемого) кода в сети, который мне не помогает, и я нашел много высокотехнологичных математических документов, из которых я не могу преодолеть разрыв между теорией и реализацией .
Если бы кто-то мог порекомендовать популярный алгоритм и указать мне простое для понимания объяснение его, которое склоняется к имплементации, это было бы замечательно.
-edit: мне нужны алгоритмы, которые работают, когда дивиденд составляет ~ 4000 бит, а делитель ~ 2000 бит
-edit: будет ли этот алгоритм работать с base-256? http://courses.cs.vt.edu/~cs1104/BuildingBlocks/divide.030.html
-edit: Это алгоритм (деление Ньютона), который я действительно должен использовать? http://en.wikipedia.org/wiki/Division_(digital)#Newton.E2.80.93Raphson_division