From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



把一个IEEE的浮点数转换成一个实数



主要软件:
主要软件版本: N/A
主要软件修正版本: N/A
次要软件: N/A

问题: 我正在从一个PLC中读取实数(浮点数)。这些数字是用IEEE的浮点数来存储的,在PLC中是个标准。在LabVIEW中,实数是由两个16位的整型来表示。有没有一个VI或函数可以从32位的数中取出指数和尾数产生一个浮点数?

解答: 下面的附件是一个VI,说明了LabVIEW如果以二进制的格式在内存中存储单精度(SGL)的浮点数。32位的二进制数是基于下列的IEEE 754格式的:

1位符号位(SIGN)
8位指数位(EXPONENT)
23位尾数位(MANTISSA)

转换的公式如下:

SGL = (-1)^SIGN * 1.MANTISSA * 2^(EXPONENT-127)

您可以使用这个VI来把SGL数转换成相应的二进制存储,反之亦然。

相关链接:
KnowledgeBase [2MKB41DV]: How Can I Read the Binary Representation of a Floating Point Number in LabVIEW?
KnowledgeBase [22U9EHHH]: How Does LabVIEW Represent Fractional Numbers in Memory?

附件:


IEEE to Single.vi


报告日期: 05/29/2006
最近更新: 05/29/2006
文档编号: 3GE95CTY