Stimmt, das
absolute
-Keyword wär auch noch eine Möglichkeit. Hier aber nochmal mit einem Byte-Pointer der über die Single-Variable wandert, ist ja im Endeffekt das gleiche. Und macht mir persönlich weniger Angst.
Und ja, Big- oder Little-Endian müsste auch noch geklärt werden...
Delphi-Quellcode:
procedure TForm5.FormCreate(Sender: TObject);
var
float: Single;
byteNo: Integer;
bytePtr: PByte;
numHexDigits: Integer;
begin
float := System.Pi();
numHexDigits := 16 div (Byte.Size()*8);
self.Caption := float.ToString()+'=';
for byteNo := 0 to Pred(float.Size()) do
self.Caption := self.Caption + float.Bytes[byteNo].ToHexString(numHexDigits);
memo1.Lines.Append(float.ToString()+' entspricht...');
bytePtr := Addr(float);
for byteNo := 0 to Pred(float.Size()) do begin
memo1.Lines.Append(bytePtr^.ToString() + ' = 0x'+bytePtr^.ToHexString(numHexDigits));
Inc(bytePtr);
end;
end;