Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有两个系统相互传递实数。一个接收系统没有将两个 U16 准确地转换为浮点数(使用内部函数)。一个例子是 100.15 被转换成 100.21。准确性对我的应用程序非常重要。我需要自己执行转换,但缺乏这样做的数学。谁能提供将两个 Modbus U16 转换为浮点数所需的数学知识?
示例:给定 123.456 Modbus 通过 17142 和 59769
这两个数字几乎相似是奇数。如果存在表示问题(例如交换字节),则值将不匹配,即使它们甚至可以被解释为有效的浮点数。
如果您需要确定这些值,您是否可以让两个系统移动定点 (100150) 中的值并将该数字除以 1000 以将其缩放回工程单位?
这将允许您避免发送方和接收方中浮点实现的复杂性。当然,如果缩放整数转换是问题所在,那么您将需要查看系统中存在问题的值的替代表示。