Hallo messie,
Die Funktion
HexToBin füllt einen Puffer mit den Zeichen, deren Hex-Darstellung als String (mit Kleinbuchstaben!) im ersten Parameter übergeben werden:
Code:
'41424358595a' -> 'ABCXYZ'
Wie Dax schon angedeutet hat, wird die Anzahl der umgewandelten Zeichen durch die Länge des übergebenen Puffers und nicht durch den ersten Parameter bestimmt. Bei deinem Beispiel wären dies 16 Zeichen, obwohl du nur Hexcode für 2 Zeichen (2 x #$FF) übergibst.
Wenn du einen als String vorliegenden Hexwert bitweise auswerten möchtest, könntest du ihn zunächst in einer Integer-Variablen ablegen. Aus dieser lassen sich die einzelnen Bits leicht gewinnen:
Delphi-Quellcode:
var
s : string;
v : Integer;
bit0 : Boolean;
bit8 : Boolean;
bit14 : Boolean;
begin
s := 'ffff';
v := StrToIntDef('$' + s, 0);
bit0 := Odd(v {shr 0});
bit8 := Odd(v shr 8);
bit14 := Odd(v shr 14);
end;
Gruß Hawkeye