16進数文字列を数値に変換関数がデータを正しく変換しないのはなぜですか?

更新しました Feb 18, 2019

使用製品

Software

  • LabVIEW

問題

16進数文字列を数値に変換関数を使用して16進数のデータを変換していますが、ゼロまたは不適切な値が出力されます。16進数値が正しく変換されないのはなぜですか?
 

解決策

16進数文字列を数値に変換関数は、生の16進数データに存在する接頭辞「0x」のない数値を想定しています。
 

  • たとえば、「5555」と入力すると、10進値21845が返されます。これは、16進値0x5555の正しい10進表現です。
  • ただし、「0x5555」を入力すると、0が返されます。これは、生の16進値0x5555が実際には数値ではない「UU」のASCII文字列に対応するため、0を返します。




文字列が標準表示で接頭辞を除外するには、16進数文字列を数値に変換関数のオフセット入力で接頭辞を除外するようにします。文字列が16進表示の入力を維持しながらこの問題を解決したい場合は、型変換関数を使用して値を変換できます。16ビット整数として型変換する必要があります。
 

追加情報

非表示文字やエスケープ文字が含まれていないことを確認するために、VIの入力で文字列を確認してください。エスケープ文字が含まれていると、VIが0または不適切な値を返す可能性があります。

この記事はお役に立ちましたか?

いいえ