0

C# の浮動小数点数を 2 バイトに変換します。たとえば、番号が 12.4544 で、0x4147 または 0x41474539 である必要があります。bitconverter.doubletoInt64 を使用しましたが、奇妙な結果が得られます。0x4147 を取得するにはどうすればよいですか?

MODBUS スレーブを作成していますが、各浮動小数点数を 2 バイトとして送信する必要があります

ありがとう

4

1 に答える 1

4

編集:ああ、ああ、私はこれを完全に見逃していました。これは短い答えです:

ここに示すように、floatを使用BitConverter.GetBytesして渡します。

長い答え:

BitConverter は単精度浮動小数点数をサポートせず、doubles のみをサポートします。次のように、C# の「ユニオン」を作成する必要があります。

[StructLayout(LayoutKind.Explicit)]
class Floater
{
    [FieldOffset(0)]
    public float theFloat;
    [FieldOffset(0)]
    public int theInt;
}

フロートを入れてtheFloat見てくださいtheInt

于 2012-06-05T05:52:11.243 に答える