Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Max. Wert von longint? (https://www.delphipraxis.net/58179-max-wert-von-longint.html)

Delphi Star 2. Dez 2005 13:46


Max. Wert von longint?
 
Wie hoch ist der Max. Wert von longint :?:

Luckie 2. Dez 2005 13:47

Re: Max. Wert von longint?
 
Die Frage ist jetzt nicht dein Ernst oder? :roll:

Steht in der Hilfe.

ManuMF 2. Dez 2005 13:51

Re: Max. Wert von longint?
 
Wie Luckie schon gesagt hat, Delphi-Referenz durchsuchenInteger oder Delphi-Referenz durchsuchenLongInt.

Aber was solls... ;-)
–2.147.483.648..2.147.483.647

Gruß,
ManuMF

Muetze1 2. Dez 2005 13:52

Re: Max. Wert von longint?
 
Delphi-Quellcode:
High(Integer)
, wenn du es im Code nutzen willst.

Khabarakh 2. Dez 2005 14:01

Re: Max. Wert von longint?
 
Zitat:

Zitat von Muetze1
Delphi-Quellcode:
High(Integer)
, wenn du es im Code nutzen willst.

Das könnte aber schon in wenigen Jahren nicht mehr stimmen :wink: .

Delphi-Referenz durchsuchenMaxLongint gäbe es auch noch.

ichbins 2. Dez 2005 14:25

Re: Max. Wert von longint?
 
vergebt mir, wenn ich jetzt sch*** schreibe, aber ich glaube die Größe eines Integers entspricht (noch) der Größe eines Longints, und zwar 32 Bit. Wenn dann allerdings (endlich) ein 64-Bit-Compiler für Delphi rauskommt, wird der Integer 64 Bit haben und der Longint nur noch 32.

Die Größe kannst du so berechnen: 2^(32-1) <-> -((2^(32-1))-1).

Die Größe einer Variable bekommst du auch mit sizeof(i);

folglich müsste der Code für den Range so lauten:

Delphi-Quellcode:
uses
  ..., math;

[...]
var
  i:integer;
begin
  maxwert:=power(2,(sizeof(i)*8-1));
  minwert:=-power(2,(sizeof(i)*8-1))+1;

RavenIV 2. Dez 2005 14:31

Re: Max. Wert von longint?
 
Zitat:

Zitat von ichbins
vergebt mir, wenn ich jetzt sch*** schreibe, aber ich glaube die Größe eines Integers entspricht (noch) der Größe eines Longints, und zwar 32 Bit. Wenn dann allerdings (endlich) ein 64-Bit-Compiler für Delphi rauskommt, wird der Integer 64 Bit haben und der Longint nur noch 32.

warum sollte ein LongInt kürzer als ein Integer sein? Wo ist da der Sinn?
Vermutlich wird der Integer bei 32 Bit bleiben und der LongInt wird 64 Bit werden.
Das schreibt ja quasi die Abwärtskompatibilität vor.

ichbins 2. Dez 2005 14:34

Re: Max. Wert von longint?
 
Ich hab so einen 500-Seiten-Wälzer, da glaube ich gelesen zu haben, dass ein Integer immer auf die CPU optimiert ist und wenn man eine Konstante größe will, einen longint nehmen soll weil der IMMER 32 Bit hat.

tommie-lie 2. Dez 2005 14:46

Re: Max. Wert von longint?
 
Zitat:

Zitat von RavenIV
warum sollte ein LongInt kürzer als ein Integer sein? Wo ist da der Sinn?

Weil LongInt historisch gewachsen ist und der tatsächliche vorzeichenlose, 32bittige Ganzzahltyp in DelphiLanguage ist. Integer und Cardinal sind lediglich aliases auf einen generischen Ganzzahltyp. Es würde Sinn machen, bei einem 64bit-Compiler, diese beiden Aliases auf 64bit-Typen umzumappen, also auf einen LongLongInt (Int64 haben die Borländer das Ding ja leider genannt).

Zitat:

Zitat von RavenIV
Vermutlich wird der Integer bei 32 Bit bleiben und der LongInt wird 64 Bit werden.

*DAS* wäre allerdings das dümmste, was Borland machen könnte. LongInt ist immerhin der tatsächliche Datentyp und Integer nur ein Alias. Die Abwärtskompatiblität schreibt nicht vor, daß Datentypen einfach ihre Größe ändern, wie du vorschlägst. Die Abwärtskompatibilität schreibt vor, daß ein LongInt das bleibt, was er per Definition seit rund 10 Compilergenerationen ist: ein vorzeichenloser 32bit-Ganzzahltyp.

himitsu 2. Dez 2005 14:46

Re: Max. Wert von longint?
 
Nein, Intger ist mit dem Compiler abgestimmt ... bei einem 32-Bit Compiler ist es ein LongInt (32-Bit), in Delphi 1 war es ein SmallInt (16-Bit) und in den 64-Bitversionen des Delphi-Compilers wird es dann ein LargeInt (64-Bit sein).

Aber der Compiler ist auf ein Betriebssystemabgestimmt, welches auf den Prozessor abgestimmt wurde, also hast du zumindestens nicht ganz unrecht.

CPU/FPU > Betriebssystem > Compiler > Datentypen


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:05 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz