На преобразовании из числа в строку можно схалявить. Дело в том, что переменные типа Single, как ни странно, представляют собой последовательность байт. Но, стоит заметить, что байты располагаются в обратном порядке. Т. е. можно написать так:
Код
Type
Float=Single;
TByteArray=Array[1..SizeOf(Flost] Of Byte;
Function ToStr(f:Float):String;
Var
i:Integr;
Result:String;
b:TByteArray Absolute f;
Begin
Result:='';
For i:=1 To SizeOf(Float) Do
Result:=Result+ByteToStr(b[i]);
ToStr:=Result
End;
Где ByteToStr переводит переменную типа Byte в строку из восьми нулей и единиц, т. е. Function ByteToStr(b:Byte):String;
Думаю, что её написать не представляет сложности.
А обратное преобразование есть обратное преобразование. Надо просто сделать всё с точностью наоборот.