这个数 是我从一台 modbus 机组上读出来的一个值,他在 wincc 上的数据类型是 32 位浮点数 IEEE 754, 格式 FloatToSignedWord 。
我怎么转也不成功,只有-1130113270 才能转成 -0.02 有没有大神只知道这个怎么弄
这个数 是我从一台 modbus 机组上读出来的一个值,他在 wincc 上的数据类型是 32 位浮点数 IEEE 754, 格式 FloatToSignedWord 。
我怎么转也不成功,只有-1130113270 才能转成 -0.02 有没有大神只知道这个怎么弄
|
iX8NEGGnNov 4, 2022 via iPhone
1
float 有 -0.02 这个数?
|
|
sujin190Nov 4, 2022
3
你确定接收的是正确的或者没溢出,65532 就不符合 IEEE 754 格式的二进制编码
|
|
GooooooniXNov 4, 2022
4
1. 要确认他用的是不是 IEEE754 ?
2. 是不是用的半精度浮点数? 3. 上面都不是,就要问一下,是不是定点数表示法。然后问他:符号位有没有,整数位多少 bit ,浮点数多少位? |
|
gujigujijNov 4, 2022
5
原始报文是什么
|
|
6
@moremoney
1. IEE 754 标准中,根本就无法精确表示 -0.02 这个数,所以 -0.02 是你舍入得到的,还是软件舍入得到的 2. 问题中”这个数“,到底是指 65532 还是 -0.02 ,不明白你的意思 3 ”FloatToSignedWord“,按字面意思是 float 的 32 位的二进制,转换成 16 位有符号数 ,16 位有符号数表示的范围在 -32768~32767 ,你又是如何的到 65532 这个值的 所以根本没人能解决你的问题,大家全靠猜 |