В качестве проекта свободного времени я пытаюсь реализовать некоторые криптографические алгоритмы с использованием автономного C - то есть варианта C без стандартных библиотечных функций (стандартные типы библиотек и константы по-прежнему доступны) и без дополнительныхтакие функции, как VLA (массив переменной длины).
Одна из вещей, которые я сделал, - реализовал несколько функций для больших целых чисел (размер> 128 бит).Однако функция целочисленного деления в этом параметре требует отслеживания остатка в его текущей форме, и, поскольку я использую автономную среду, вызывающая сторона должна предоставить для нее место.
Возможно ли реализовать алгоритм деления для вычисления коэффициента, не полагаясь на отслеживание остатка, и, возможно, используя технику бит-среза?Допустимо использовать рекурсию вызовов для хранения переменных в стеке.
Предположим, что тип большого целого - bigint_t:
#define N 8
typedef uint32_t bigint_t[N]; // least-significant word first.