Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.15;
Скачать: CL | DM;

Вниз

Работа с большими числами   Найти похожие ветки 

 
kroner   (2006-09-21 14:30) [0]

Подскажите где можно почитать по теме. Желательно алгоритм на asm"e


 
wal ©   (2006-09-21 14:33) [1]

Почитать - в учебнике второго класса - вычисления "в столбик".
На Asm перевести самостоятельно.


 
kroner   (2006-09-21 14:36) [2]

асм пока плохо знаю. А есть готовые библиотеки?


 
Rial ©   (2006-09-21 14:43) [3]

http://Rial578.narod.ru/source/bigzahlen.rar

Кривой, медленный, некрасивый... но рабочий вариант
для сложения, умножения, деления и вычитания
чисел любой разрядности.


 
ArtemESC ©   (2006-09-21 18:43) [4]

kroner   (21.09.06 14:30)  
Могу рассказать как складывать и вычитать большие числа на асме...


 
ZMRaven ©   (2006-09-21 18:48) [5]

Ну так поведай, я то асму не знаю толком...мне было бы интересно :-)
я там хорошо знаю только int 33h


 
xayam ©   (2006-09-21 18:52) [6]


> ArtemESC ©   (21.09.06 18:43) [4]

да да рассказывай тоже интересно. А умножать умеешь? А если числа с миллионами разрядов то как?


 
ArtemESC ©   (2006-09-21 19:04) [7]

ZMRaven ©   (21.09.06 18:48) [5]

Не проверял - пишу, что придет в голову, могу ошибиться:

ES: [EDI] - указывает на число к котором прибавлять...
DS: [ESI] - указывает на слагаемое
CX = количество выделенных под число байтов, умноженное на 4...

Сложение:
pushad
clc
@@L:
mov EAX, ES: [EDI]
adc  EAX, DS: [ESI]
mov ES: [EDI], EAX
add  EDI, 4
add  ESI, 4
loop L  
popad

ES: [EDI] - указывает на число, из которого нужно вычесть...
DS: [ESI] - указывает на вычитаемое...
CX = количество выделенных под число байтов, разделенное на 4...

Вычитание:
pushad
clc
@@L:
mov EAX, ES: [EDI]
sbb  EAX, DS: [ESI]
mov ES: [EDI], EAX
add  EDI, 4
add  ESI, 4
loop L  
popad


 
ArtemESC ©   (2006-09-21 19:08) [8]

Надеюсь имелись ввиду операции с целыми числами !??

xayam ©   (21.09.06 18:52) [6]
А умножать умеешь?

В школе научился...

А если числа с миллионами разрядов то как?
А зачем???


 
xayam ©   (2006-09-21 19:10) [9]


> ArtemESC ©   (21.09.06 19:08) [8]

ну вот есть же проекты поиска чисел Мерсенна. Как это работает?


 
ArtemESC ©   (2006-09-21 19:14) [10]

xayam ©   (21.09.06 19:10) [9]
Какие числа Марсена??


 
xayam ©   (2006-09-21 19:16) [11]

это которые простые и удовлетворяют формуле 2^p-1, где p - тоже простое число


 
ArtemESC ©   (2006-09-21 19:20) [12]

xayam ©   (21.09.06 19:16) [11]
Не понял в чем состоит трудность, нужно проверить является ли данное длинное = 2^p-1, где p - тоже простое число??


 
ArtemESC ©   (2006-09-21 19:25) [13]

2^p - это одна единичка и все нули
00000100000.......0

2^p - 1 это
00000011111.......1

Нужно просто посчитать количество единичек в начале, если количество - простое число, то ок...
Число единичек должно поместиться в 4 байта, ибо если их будет больше у персонального компьютера закончиться память...


 
xayam ©   (2006-09-21 19:25) [14]


> ArtemESC ©   (21.09.06 19:20) [12]

трудность в том что формулы для вычисления простых чисел нет. Приходится проверять каждое число. И числа Мерсенна также проверяют на простоту (кстати последнее 44-е число Мерсенна содержит аж 9,808,358 разрядов) что понятно трудно.


 
xayam ©   (2006-09-21 19:29) [15]


> ArtemESC ©   (21.09.06 19:25) [13]
> 2^p - это одна единичка и все нули
> 00000100000.......0
>
> 2^p - 1 это
> 00000011111.......1
>
> Нужно просто посчитать количество единичек в начале, если
> количество - простое число
, то ок...

да ладно?

> ибо если их будет больше у персонального компьютера закончиться
> память...

регистровая может и закончится, а если как BCD хранить в файле и по частям считывать.



Страницы: 1 вся ветка

Текущий архив: 2006.10.15;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.033 c
15-1158847784
furyz
2006-09-21 18:09
2006.10.15
Apache conf


2-1159642613
ProgRAMmer Dimonych
2006-09-30 22:56
2006.10.15
Совместное использование процедур юнита и компонента


2-1159119975
ZiTrAX
2006-09-24 21:46
2006.10.15
Минимальный размер программы


8-1142592661
Noby
2006-03-17 13:51
2006.10.15
Фильтры в DirectShow?


15-1158845862
TUser
2006-09-21 17:37
2006.10.15
С днем рождения, 70 лет