3

このコードを確認してください

float f = BitConverter.ToSingle(new byte[] { 0xBF, 0x04, 0x8E, 0xFF }, 0);
byte[] b = BitConverter.GetBytes(f);

これは奇妙な結果をもたらします。b は { 0xBF, 0x04, 0xCE, 0xFF } になります

f の値が NaN だからだと思います。私がこの質問をしている理由は、Marsal を使用して、バイトのストリームをフロートを含む構造体に変換するためです。I スワップ エンディアン

問題は、フィールドに到達したときにすでにめちゃくちゃになっていることです(上記の例のように)

何か案は?

ありがとう!

4

2 に答える 2