Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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;
Ну и по коду может быть


Наверх

Титульная страница Поиск, карта сайта Написать письмо