我要将 C# 浮点数转换为 2 个字节,例如我有数字 12.4544,它应该是 0x4147 或 0x41474539,我使用了 bitconverter.doubletoInt64,但它给了我一些奇怪的东西,我怎样才能得到 0x4147 ?
我正在创建一个 MODBUS 从站,我应该将每个浮点数仅发送 2 个字节
谢谢
我要将 C# 浮点数转换为 2 个字节,例如我有数字 12.4544,它应该是 0x4147 或 0x41474539,我使用了 bitconverter.doubletoInt64,但它给了我一些奇怪的东西,我怎样才能得到 0x4147 ?
我正在创建一个 MODBUS 从站,我应该将每个浮点数仅发送 2 个字节
谢谢
编辑:哦,天哪,天哪,我完全错过了这个,这是简短的回答:
使用BitConverter.GetBytes
并传递一个浮点数,如此处所示。
长答案:
BitConverter 不支持单精度浮点数,仅支持double
s。您必须创建一个 C#“联合”,如下所示:
[StructLayout(LayoutKind.Explicit)]
class Floater
{
[FieldOffset(0)]
public float theFloat;
[FieldOffset(0)]
public int theInt;
}
把你的花车放进去theFloat
看看theInt