Bien, todo depende del orden en que te manden esos bytes. Me explico:
Tenemos, por ejemplo el numero:
-118.625
Cuya representacion en IEEE es:
11000010 11101101 01000000 00000000
Si te manda los bytes de derecha a izquierda, podemos hacer algo como esto:
Código Delphi
[-]
function StrToSingle(Str: String): Single;
begin
if length(Str) = 4 then
Result:= PSingle(@Str[1])^
else
Result:= 0;
end;
Pero si por el contrario, te manda los bytes de izquierda a derecha tenemos que darles la vuelta primero
Código Delphi
[-]
function StrToSingle2(Str: String): Single;
var
i: integer;
S: string;
begin
if length(Str) = 4 then
begin
S:= '';
for i:= 4 downto 1 do
S:= S + Str[i];
Result:= PSingle(@S[1])^
end
else
Result:= 0;
end;
Por ultimo te dejo un ejemplo, para que pruebes la funcion:
Código Delphi
[-]
var
s: string;
begin
SetLength(s,4);
s[4]:= #194; s[3]:= #237; s[2]:= #64; s[1]:= #0; ShowMessage(FloatToStr(StrToSingle(s)));
end;
¿Era esto lo que buscabas?