把一個IEEE的浮點數轉換成一個實數



主要軟體:
主要軟體版本: 7.1
主要軟體修正版本:
次要軟體: 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 - IEEE to Single.vi


報告日期: 05/29/2006
最後更新: 01/09/2007
文件偏號: 3GE95CTY