Statt Integer lieber LongInt oder LongWord verwenden (Single ist 4 Byte ... Integer ist es nicht unbedingt)
Delphi-Quellcode:
Function BinFtoString(f: Single): String;
Var i: Integer;
b: LongInt absolute f;
Begin
SetLength(Result, 32);
For i := 32 downto 1 do Begin
Result[i] := Char((b and 1) + Ord('0'));
b := b shr 1;
End;
End;
Function BinFtoString(f: Single): String;
Var i: Integer;
b: PLongInt;
Begin
b := @f;
SetLength(Result, 32);
For i := 32 downto 1 do Begin
Result[i] := Char((b^ and 1) + Ord('0'));
b^ := b^ shr 1;
End;
End;