![]() |
Variablentypen
hihi,
ich habe mal eine für mich sehr schwere frage, aber vieleicht weiß jemand rat... bei einem mathematischen problem, brauche ich einen variblentypen der extrem groß ist, da die errechnete Zahl auch EXTREM groß wird. keiner der Typen die Delpi selber stellt sind dafür allerdings groß genug. wie kann ich selber einen typen kreiern, der groß genug ist. es soll sich dabei um eine art integer handeln, sprich eine (positive) ganzahlige variable. ein freund von mir war der meinung ich müsse direct auf dem arbeitspeicher platz reservieren und dass dann dort reinschreiben, aber ich habe absolut keinen plan wie das gehen soll, zumal ich dami ja noch rechnen muss. bitte helft mir ich wäre euch sehr dankbar |
Re: Variablentypen
Erstmal :party: WILLKOMMEN in DP :party:
Wie groß wird die Zahl den ungefähr? Vielleicht könntest du die Zahl zum String machen und dann den String aufteilen und einzeln abspeichern? :cyclops: Und ist ein Longinteger nicht groß genug? |
Re: Variablentypen
Oder ein int64 (-2^63..2^63-1)?
|
Re: Variablentypen
nein...
ich möchte primzahlen berechen und zwar mersenne-primzahl... d.h. 2^k-1 ist eine primzahl, dabei ist k auch eine primzahl wenn ich für k sieben einsetze erhalte ich 127, setze ich das wioederum für k ein so ist die zahl schon zu groß um in jegliche typen zu passen. in einen string kann ich es nicht packen da ich noch weiter rechnen will |
Re: Variablentypen
Also, man kann natürlich Int64 verwenden. Aber Int64 ist nur
Zitat:
Das ist für große Zahlen doch ziemlich wenig. Das problem ist auch nicht die Speicherverwaltung bei Delphi sondern die Rechenbarkeit. Du müsstest alle Operationen selbst programmieren. Glücklicherweise gab es schon jemanden der daran gedacht hat und eine super Biblothek geschrieben hat: DEC von Hagen Reddmann hier auch bekannt als negaH. Suche mal: ![]() Da kannst du drauf zugreifen und die perfekt optimierten Routinen für alles Mögliche verwenden. Die Zahlen können so weit ich weis bis 2^4096 also 1233 Stellen groß werden. Vielleicht klappt es noch größer. Darfst du nur bei Freeware-Programmen nicht bei komerziellen verwenden. |
Re: Variablentypen
mmh....is ja wirklich nett, danke dafür...
aber ich glaube nicht dass das das ist was ich suche. ich möchte ja nur wissen wie ich einen eigenen variablentyp erstellen kann, damit ich es A) verstehe, was ich mache und B) individueller an das problem ran gehen kann trotzdem danke |
Re: Variablentypen
Wenn du dir einen eigenen Variablentypen dafür deklarierst, dann musst du auch *ALLE* Berechnungen 'von Hand' machen (bzw. dafür neu erfinden), da das dann die CPU nicht mehr für die übernimmt (wie bei den normalen Delphi-Datentypen).
Beispiel: wenn du mit BCD-Zahlen arbeitest passen 4 Milliarden Dezimalstellen in 2 GB Speicher, reicht dir das denn? :stupid: |
Re: Variablentypen
was sind BCD-Zahlen?!
|
Re: Variablentypen
Binary Coded Decimal. Hätte man aber auch leicht über die Wikipedia oder Google selber rausfinden können.
|
Re: Variablentypen
Binary Coded Decimal - schau mal bei Wikipedia ;)
Der rote Kasten war zwar da, aber Luckies Post nicht ... :gruebel: ausserdem hat mein post einen sichlichen Mehrwert :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz