integer zu einem byte-array

Zuviel Werbung?
-> Hier kostenlos registrieren
INTEGER, BYTE, HEX ARRAY[1..8] passt alles nicht wirklich zusammen.
Meine Kugel sagt:
Integer hat 2 Byte = 16 Bit
HEX hat pro Zahl ein halbes Byte = 4 Bit
Dein Array of Byte soll nun Int Stelle 1 = Hex-Wert im Array [1] werden?
 
hey,

stimmt natürlcih, etwas mehr details wären sinnvoll ;)
eine funktion liefert mir eine zahl als integer.
diese zahl soll als hex-wert in einem array abgespeichert werden.

2084 int = 800hex = 00 00 08 00

Aufbau des Arrays:
ARRAY[1..4] OF BYTE := [16#00,16#00,16#00,16#00];

Reihenfolge:
ARRAY[1] = HH
ARRAY[2] = HL
ARRAY[3] = LH
ARRAY[4] = LL
 
2084 int = 824 hex = 16#0824 = 16#00, 16#00, 16#08, 16#24

Das sollte so funktionieren:
Code:
tempDWord := MyInt;
MyByteArray[1] := DWORD_TO_BYTE(SHR(tempDWord, 24));
MyByteArray[2] := DWORD_TO_BYTE(SHR(tempDWord, 16));
MyByteArray[3] := DWORD_TO_BYTE(SHR(tempDWord, 8));
MyByteArray[4] := DWORD_TO_BYTE(tempDWord);

Wenn Du uns noch mitteilst wie Dein Programmiersystem heißt, dann findet sich bestimmt auch eine effizientere Variante um die 4 Byte des DWORD auf das 4-BYTE-Array zu kopieren, z.B. was mit Pointer oder AT oder SWAP oder ...

Harald
 
Zurück
Oben