![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
RSA и проблемы с большими числами [D7, Win95/98, Win2k, WinXP]
Кодер © (2005-03-11 00:11:00)Проблема при работе с большими числами при программировани RSA. Использую для этого тип TBcd. Все отлично, но никак не могу разобраться с делением этих чисел, а именно с процедурой BcdDivide, все время на выходе ноль получается или ерунда какая-то, может кто работал с этим типом данных? Заранее хочу предупредить, что я знаю, что существует много всяких уже написаных модулей, но алгоритм я уже почти запрограммировал и использую при этом этот тип данных. Помогите, кто может.
Кодер (2005-03-11 11:07:00) [1]Странно, что переполнение получается, там число-то всего-то наверное знаков около 30...
Slym (2005-03-11 05:11:00) [2]Ну тормоза у тебя будут...
Там вычисления строкой в столбик! Тормоза НЕРЕАЛЬНЫЕ.
Юзай LockBox хотябы...
А 0 у тебя от переполнения TBCD... там ограничение
MaxFMTBcdDigits = 32;
PBcd = ^TBcd;
TBcd = packed record
Precision: Byte; { 1..64 }
SignSpecialPlaces: Byte; { Sign:1, Special:1, Places:6 }
Fraction: packed array [0..31] of Byte; { BCD Nibbles, 00..99 per Byte, high Nibble 1st }
end;
Руками исправь, на 256
MaxFMTBcdDigits = 256;
PBcd = ^TBcd;
TBcd = packed record
Precision: Byte; { 1..64 }
SignSpecialPlaces: Byte; { Sign:1, Special:1, Places:6 }
Fraction: packed array [0..255] of Byte; { BCD Nibbles, 00..99 per Byte, high Nibble 1st }
end;
Ну и по коду может быть