Entwickler-Ecke
Algorithmen, Optimierung und Assembler - Speicherbedarf von Ordinal- und Real-Typen
JayK - Do 16.06.05 16:58
Titel: Speicherbedarf von Ordinal- und Real-Typen
Hallo,
bin ich hier in der richtigen Sparte?
Ich würde gerne wissen, ob, und wenn ja wo, es hier oder wo anders eine Übersicht oder Tabelle mit dem Speicherverbrauch von den verschiedenen Datentypen gibt.
Boolean belegt z.B. 1 Byte, das weiß ich (na ja, wahrscheinlich theoretisch nur 1 Bit, aber der Arbeitsspeicher benutzt ja glaub ich Byte als kleinstes) und String belegt einen variablen Platz, der von der String-Länge abhängt.
Über die Suche der DF und über die der Delphi-Hilfe hab ich nichts passendes gefunden.
Schonmal Danke im voraus,
JayK
alzaimar - Do 16.06.05 20:14
Hi JayK!
Schreib Dir doch ein kleines Programm, das mit Dir mit sizeof(Typ) die Größe der einzelenen Datentypen ausgibt. Nebenbei steht das irgendwo in der Hilfe, ich finde aber, es macht mehr Spass, es selbst rauszufinden.
Du kannst übrigens einen Boolean auch als 1bit abspeichern. Dann brauchst Du noch 7 weitere Boolean Werte, um das Byte aufzufüllen. Das geht mit einem packed array. Daneben gibt es auch noch einen packed record. Allerdings ist der Zugriff auf solche gepackten Strukturen langsam (Bei 3Ghz Büchsen aber auch egal)
Spaceguide - Do 16.06.05 21:54
Also ein packed array [0..7] of boolean frisst trotzdem 8 Byte.
BenBE - Do 16.06.05 22:14
Packed hat was mit dem Alignment zu tun, nicht mit der Bit-Belegung. Das wären sog. Unions und die kann Delphi nicht.
Was Du meinst sind sogenannte Sets und die kann Delphi ohne Probleme.
JayK - Fr 17.06.05 19:28
OK hab ich gemacht (Prog geschrieben und geguckt):
(gehen hier gar keine Tabellen) :motz: (dafür könnte man hier HTML gebrauchen, aber das ist ja aus) :roll:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| Datentyp Speicherbedarf Wertebereich ------------------------------------------------------------------------------- Integer = LongInt: 4 Bytes -2^32/2 ... 2^32/2 - 1 ShortInt: 1 Byte -128 ... 127 SmallInt: 2 Bytes -32768 ... 32767 Int64: 8 Bytes -2^63 ... 2^63 - 1 ------------------------------------------------------------------------------- Cardinal = LongWord: 4 Bytes 0 ... 2^32 Byte: 1 Byte (wer hätte es gedacht...) 0 ... 255 Word: 2 Bytes 0 ... 65535 ------------------------------------------------------------------------------- Single: 4 Bytes 1,5 * 10^-45 ... 3,4 * 10^38 Double = Real: 8 Bytes 5 * 10^-324 ... 1,7 * 10^308 Extended: 10 Bytes 3,6 * 10^-4951 ... 1,1 * 10^4932 |
[meta]Speicherbedarf Zahlen-Typen[/meta]
Jetzt gibts eine "Tabelle"
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!