初歩的な質問かもしれませんが、例えば
4byteの16進数である41E8B156をFloat型の29.087に変換したいのですがどうもうまくできません。
どうかよろしくお願いします。
強引なやりかたですが、
var
buf: array[0..3] of char;
f: Single;
pt: Pointer;
begin
buf[0] := #$41;
buf[1] := #$E8;
buf[2] := #$B1;
buf[3] := #$56;
f := 0;
pt := @f;
PChar(pt)[0] := buf[3];
PChar(pt)[1] := buf[2];
PChar(pt)[2] := buf[1];
PChar(pt)[3] := buf[0];
とすれば、fに29.0865898132324が入ります。
かなり強引だとは思いますが・・・。
にしのさん、ありがとうございます。
早速ためしましたら、解決いたしました。
ツイート | ![]() |