我正在通过套接字读取一些数据。整数数据类型没有问题, System.BitConverter 方法可以正确处理转换。(所以我认为没有需要担心的 Endian 问题?)
但是,BitConverter.ToDouble 不适用于数据的浮点部分......源规范对我来说有点低级,但谈到了在更重要的方向上具有正字节偏移的二进制定点表示和低位方向的负字节偏移。
我所做的大部分研究都是针对 C++ 或处理正弦和余弦的完整定点库,这对于这个问题来说听起来有点矫枉过正。有人可以帮我用一个 C# 函数从一个字节数组的 8 个字节产生一个浮点数,比如说,一个 -3 字节的偏移量吗?
根据要求提供格式的更多详细信息:
定点数据的有符号数值应使用二进制二进制补码表示法。对于定点数据,每个数据参数的值应根据参考字节定义。参考字节定义了一个八位字段,测量单位在 LSB 位置。参考字节的 LSB 值为 1。字节偏移应由一个有符号整数定义,该整数指示数据元素的最低有效字节相对于参考字节的位置。数据元素的 MSB 代表符号位。参数绝对值的 MSB 和最高有效字节的 MSB 之间的位位置应与符号位的值相等。
浮点数据应表示为符合 IEEE ANSI/IEEE Std 754-2008 的二进制浮点数。(这句话来自不同的部分,可能是一个红鲱鱼)。