Double Word Variable in Pascal

Confector

Mitglied
Hi @ all,

die Antwort auf die Frage warum es in Turbo Pascal kein double Word gibt, wird mir warscheinlich nicht viel weiter helfen. Also könnte mir vielleicht jemand sagen wie ich eine Double word konvertiere. Ich bekomme also ein 4 byte Array das ich als ... single - oder longint später weiter bearbeiten möchte. anscheined geht es nicht so ohne weiteres mit dem Befehl "shl".

thx
 

Confector

Mitglied
mh.. ja.. also, ich bekomme über die Serielle Schnittstelle 4 Byte zugesendet. Diese 4 Byte stellen eine Double Word Variable da. Sagen wir so, es ist ein verdammt grosser Wert, der grösser ist als 650000, also über dem Maximum einer Word Variable. Deswegen wird eine Double Word gesendet.

Double Word ist eine 32 Bit "word". comprende?!
:(

Problem NR.1 TP-Borland hat keine Double Word und keine entsprechenden Routinen zum konvertieren. Deswegen muss ich nun diese Werte in eine Longint oder Single sichern(problem NR2). Leider weiss ich nicht wie...


zum Verständniss:bei einer Word hast du die Func. Hi() und LO()..(2 Byte)... was zum teufel bei einer Double word?!?! hihi() hi() lo() und lolo() ?? lol :)
 

Confector

Mitglied
mir ist nochetwas eingefallen....


eine word geht von "0" bis "65535" ...
eine Integer hingegen geht von "-32768" bis "32768"..

obwohl beide 16 Bit zahlen sind...
zur erinnerung double word ist 32 bit ...
 

joedalton

Grünschnabel
Moin,

Cardinal gibt es nur in Object Pascal (Sprache von Delphi) und so weit ich weiß, gibt es longword weder in Delphi noch in TP (kann mich auch irren).

Eventuell hilft dir aber longint (32 bit) weiter. Das gibt es auch in TP und geht von -2147483648 bis 2147483647.

MfG Joe
 

Confector

Mitglied
thx,
mit der Longint funzt das. Der Wert darf bloß nicht den Grenzbereich der Longint überschreiten. diese 2 mil. ich kann in meinem falle davon ausgehen, das das nie passieren wird ;-)

cya