LabVIEWで浮動小数点数のバイナリ表現を読み取るにはどうすればよいですか?

更新しました Oct 30, 2024

使用製品

ソフトウェア

  • LabVIEW Professional
  • LabVIEW Full
  • LabVIEW Base

問題

LabVIEWで浮動小数点数のバイナリ表現を読み取ろうとしています。 Type Cast関数を使用して浮動小数点数をブール配列として読み取ろうとしましたが、64ビットの倍精度数値に対して 8ビットしか取得できません。 64 個の要素を持つブール値の配列を取得したいです。

解決策

実際のバイナリ表現を取得するには、まず浮動小数点数を整数の配列に型変換する必要があります。その後、この配列を自動インデックス付けされた for ループにフィードできます。ループの各反復で、ブール パレットにある「数値をブール配列に変換」関数を使用して、整数がブール配列に変換されます。図については、下の図を参照してください。


注: この画像は LabVIEW スニペットであり、プロジェクトで再利用できる LabVIEW コードが含まれています。スニペットを使用するには、画像を右クリックしてコンピュータに保存し、ファイルを LabVIEW ダイアグラムにドラッグします。

追加情報

浮動小数点数をブール値の配列に型キャストすると、数値内の各バイトのブール要素のみが取得されます。たとえば、倍精度数値 (8 バイト) がある場合、8 要素のサイズのブール配列が得られます。ブール要素は理論的には 1ビットのメモリしか必要としませんが、実際にはそれぞれ 1バイト全体を消費します。

LabVIEW浮動小数点数はIEEE 754形式で保存されます。次の表は、単精度 (32 ビット) および倍精度 (64 ビット) の浮動小数点値のレイアウトを示しています。各フィールドのビット数が表示されます (ビット範囲は角括弧内にあります)。

サイン指数分数バイアス
単精度1 [31]8 [30-23]23 [22-00]127
倍精度1 [63]11 [62-52]52 [51-00]1023


注:以下の画像のコード例を実行すると、リトル エンディアン形式のため、Intel ベースのコンピューター上でバイトが交換されます。したがって、バイトの順序は次のようになります (インデックス 0 から始まる配列の行ごと): 7、8、5、6、3、4、1、2。