Du?że liczby

0

Cześć!
Mam takie małe pytanko jak przechowywać w pamięci liczbę składającą się z 29 cyfr ,tak abym mógł swobodnie wykonywać na niej operacje(dodawanie, sprawdzanie czy jest pierwsza itp.) .O ile się nie mylę to najwększą zmienną co do rozmiaru jest przy włączonym koprocesorze extended przechowująca 10 bajtów czyli do 20 znaków.
pozdrownienia

0

Zapisz w tablicy array of char .. - ktoś już chyba napisał podobny moduł i jest w zasobach (vlong.pas) o ile się nie mylę. A dodawać / odejmować można pisemnie [green] [green]

0

Mimo wszystko jeśli zamierzasz wykonywać więcej operacji niż jedna czy dwie i dopiero wyświetlać wynik, to polecam zamianę na system szesnastkowy, liczenie i dopiero powrót do dziesiętnego. Jest to o wiele wydajniejsza metoda obliczeń.

0

W C/C++ formatowanie liczb z np. systemu hex na sys. oct jest proste dzięki <ort>manipulatorą </ort>strumieni wejścia i wyjścia i tu sprawa wydaje się mniej ort!(chociaż to zapewne nie rozwiązuje całego problemu), ale wracając do Pascala pomysł Detiego z tym pisemnym dodawaniem jest do przyjęcia ale co z innymi operacjami jak np. <ort>spradź </ort>czy liczb jest pierwsza. A jak widzisz tą kombinację z sytemami liczbowymi w Pascalu.
1)Po pierwsze musiałbym wczytać z klawiatury liczbe 29 cyfrową ,pewnie jako łańcuch
2) W drugim kroku sugerujesz zamiany jej na system hex.
3) (ogólnie) Wykonanie operacji na podanej liczbie (czyli spr. czy jest pierwsza)
4) Wynik kroku 3 zamienić na sys. dec
5) Wyświet końcowy wynik
Nie wiem czy o to ci chodzi ,ale jeszcze wracając do kroku 3 jakoś nie wyobrażam sobie działań na liczbach w postaci szesnastkowej w Pascalu

0

Kiedyś widziałem jakiś modulik do wykonywania obliczeń na dużych liczbach i on działał właśnie na String'ach, w których zapisane były liczby szesnastkowo. I jemu policzeni na przykład 1000! szło bardzo szybko, zaś przeliczenie potem na system dziesiętny już trochę trwało...

1 użytkowników online, w tym zalogowanych: 0, gości: 1