0

我要将 C# 浮点数转换为 2 个字节,例如我有数字 12.4544,它应该是 0x4147 或 0x41474539,我使用了 bitconverter.doubletoInt64,但它给了我一些奇怪的东西,我怎样才能得到 0x4147 ?

我正在创建一个 MODBUS 从站,我应该将每个浮点数仅发送 2 个字节

谢谢

4

1 回答 1

4

编辑:哦,天哪,天哪,我完全错过了这个,这是简短的回答:

使用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 回答