Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hi, ich habe ein Problem, weiß allerdings nicht wo das rein gehört.

Ich schreibe grade an einer Software mit der man VIA SNMP Statistiken auslesen kann. Das Funktioniert auch sauber.

Allerdings sind einige Wert so groß, dass sie nicht mehr in Cardinal Variablen rein passen. Womit kann ich eine Größere Zahl Speichern sollte im Milliarden bereich sein bis zu 100Milliarden

Geschrieben

Ich weiss zwar nicht, bis wohin Cardinal geht, weil ich keine Ahnung von Delphi habe, aber warum speicherst du die Zahl nicht in einem anderen Zahlensystem (z.B. zur Basis 20, 30 oder 100)?

Ist der Datentyp begrenzt, auf die Länge der (sprich vor und nach dem Komma), oder stört dich "nur" die Überlaufgrenze des Bereichs. Wenn letzeres der Fall ist, verschiebe das Komma der Zahlen nach links.

Geschrieben

:eek: An deiner sog. Website besteht wirklich noch erheblicher Nacholbedarf.

Aber selbst ein Anfänger im webdesign würde niemals weiße Schrift auf einen fast weißen Hintergrund verwenden.

Ich bin Systemintegrator und kann das um einiges besser.

Wie meinst du das mit anderen Zahlensystemen.

Wie machst du denn das bitte mit Basis 100?

Würde mich auch mal interresieren.

Geschrieben

es gibt die möglichkeit jede einzelne ziffer der großen zahl in eine (doppelt) verkette liste oder dynamischen array zu speichern und dann wie in der schule auf papier damit rechnen.

Geschrieben

Allerdings sind einige Wert so groß, dass sie nicht mehr in Cardinal Variablen rein passen. Womit kann ich eine Größere Zahl Speichern sollte im Milliarden bereich sein bis zu 100Milliarden

Cardinal = 32bit ohne Vorzeichen. Probier doch mal Int64 als Typ, also 64bit, mit vorzeichen. 2^63-1 ist dabei der größte Wert, sollte also reichen.

Arithmetische Operationen in Delphi liefern allerdings nur dann Int64 zurück, wenn sie für einen oder mehrere Int64 Operanden ausgeführt werden. Int64 + Cardinal liefert also ein falsches Ergebnis, Int64 + Int64(Cardinal) allerdings das richtige.

Die Int64 Implementierung in Delphi ist aber wie ich mal gelesen habe nicht 100% korrekt, also vorallem Geschw.-mäßig wäre es da noch nich so toll. Für ein paar Berechnungen sollte das aber kaum auffallen, da die unterschiede eh im ms Bereich lagen (wenn da auch doch recht hoch).

EDIT:

Noch eine Anmerkung aus der Delphi-Hilfe:

Einige Standardroutinen mit Integer-Argumenten verkürzen Int64-Werte auf 32 Bit. Die Routinen High, Low, Succ, Pred, Inc, Dec, IntToStr und IntToHex unterstützen Int64-Argumente jedoch vollständig. Auch die Funktionen Round, Trunc, StrToInt64 und StrToInt64Def liefern Int64-Werte zurück. Einige wenige Routinen können keine Int64-Werte verarbeiten.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...