[P&AM Lab] Библиотека больших чисел
Grigoriy A. Sitkarev
sitkarev на komitex.ru
Пн Фев 28 19:35:48 MSK 2011
Боря, вот такие соображения.
В функции bnum_set() устанавливается значение поля top на индекс
последнего разряда, переданного в параметрах пользователем. По
соглашению, пользователь обязан передавать туда валидное значение, т.е.
без ведущих нулей.
Порядок разрядов в массиве соответствует степеням основания, что в общем
соответствует логике нашей библиотеки. Т.е. если мы хотим засунуть туда
положим число 0xabcd0102 то мы располагаем массив так:
unsigned short digits[] = { 0x0102, 0xabcd };
Если очень хочется сделать функцию с проверкой на валидность, тогда
нужно делать функцию bnum_set_safe() которая проверяет указатель на
массив, убирает ведущие нули и если что-то пошло не так, то
устанавливает значение bignum в 0.
Или я что-то не понимаю?
--
Г.А.
28.02.2011 10:26, LonelyRuyK пишет:
> Спасибо, почитаю. А вот ещё уточнение по init.с: если оставить так как было то
> функция cmp будет неправильные результаты выводить( изза того что сначала в
> ней проверяется a->top а уже потом сами значения). Стоит ли тогда переписывать
> эту функцию?
Подробная информация о списке рассылки Lab