发布网友 发布时间:2022-04-29 00:24
共5个回答
热心网友 时间:2022-04-30 06:49
没有意义,只是一种传输方式。首先,无论是短浮点数还是归一化值,都只是数据传输两方规定的一种传输方式。
比如要传输10进制的100,双方规定以短浮点数形式传输,则报文就会按短浮点数的规则进行改变,解析的时候,按短浮点数的规则将其还原为100。也就是说,在传输时,报文并不是0x64。
104,101中,短浮点数都是4个字节。归一化值是两个字节。遥测一般采用4字节短浮点数传输。 在程序中,直接强制类型转换,把float转成4个字节的char*即可。
举例来说,十进制的5.0,写成二进制是101.0,相当于1.01×2^2。那么,按照上面V的格式,可以得出s=0,M=1.01,E=2。
十进制的-5.0,写成二进制是-101.0,相当于-1.01×2^2。那么,s=1,M=1.01,E=2。IEEE 754规定,对于32位的浮点数,最高的1位是符号位s,接着的8位是指数E,剩下的23位为有效数字M。对于64位的浮点数,最高的1位是符号位S,接着的11位是指数E,剩下的52位为有效数字M。
热心网友 时间:2022-04-30 08:07
数值是没有意义的,比如你说的十六进制7C6,如果作为标度化值的话就是7C6,但是有标度,比如是安培、乏安等,如果转化为归一化值的话就必须先知道归一到什么标准值下,段浮点数只是数值的一种表达方法,是国际标准,是32位表示的,是科学计数法的一种数学表示,有明确的位的标准定义的归一化值是需要一个标准值的。
比如说7C6,十进制是1990,如果要归一化,那么要约定一下,比如说你的这个变量最大值对应的是2000,那么要归到1(当然归到4095,32767都行),那么归一化值就是(1990/2000)*1。浮点型其实就是数据表达的一种方式,但是它可以支持浮点型数据。
IEEE标准从逻辑上采用一个三元组{S, E, M}来表示一个数N,它规定基数为2,符号位S用0和1分别表示正和负,尾数M用原码表示,阶码E用移码表示。
根据浮点数的规格化方法,尾数域的最高有效位总是1,由此,该标准约定这一位不予存储,而是认为隐藏在小数点的左边。
因此,尾数域所表示的值是1.M(实际存储的是M),这样可使尾数的表示范围比实际存储多一位。
为了表示指数的正负,阶码E通常采用移码方式来表示,将数据的指数e 加上一个固定的偏移量后作为该数的阶码,这样做既可避免出现正负指数,又可保持数据的原有大小顺序,便于进行比较操作。
参考资料来源:百度百科-浮点数标准
热心网友 时间:2022-04-30 09:42
等待 先留个脚印 我也在找这个热心网友 时间:2022-04-30 11:33
规一化值(NVA)
NVA :=F16[1..16]<-1..+1-2-15> (Type 4.1)
没有定义测量值的分辩率,如果测量值的分辩率比LSB的最小单位粗,则这些LSB位设置为零。
标度化值(SVA)
SVA :=I16[1..16]<- 215..+215-1> (Type 2.1)
没有定义测量值的分辩率,如果测量值的分辩率比LSB的最小单位粗,则这些LSB位设置为零。
为了传输工程值如电流,电压,功率等用它们的物理单位传输(即A,kV,MW)。量程和小数点位置是固定参数。
例如:
电流:103A;传输值103
电压:10.3kV;传输值103, 小数点10-1
热心网友 时间:2022-04-30 13:41
归一化值(NVA)是将数值归一化到0~1或-1-1的范围内,电力行业内都是归一化到满码值3412(对应二次值的100V、5A、50Hz、1),1.2倍就是约4095了。用归一化传输的值解析后都是整数,会丧失精度(这就是为什么要归一化到3412的原因)。IEC103传送的基本都是这样的码值。