質問
HULFT Squareの[進数変換]ロジックでエラーが発生します。原因と対応策を教えてください。
回答
[進数変換]ロジックの仕様制限によるものです。
[進数変換]ロジックの内部データ型はlong型として処理されます。そのため、変換する進数の入力データおよび出力データの結果が以下の範囲外の値となる場合、エラーが発生します。
- データ型:long(符号付き整数)
- 範囲:-9223372036854775808 ~ 9223372036854775807
■バイナリデータ変換の実装案
10進数データを16進数に変換する場合、以下の手順でマッピングロジックを実装することで対応できます。
<マッピングロジックの全体イメージ>

<実装手順>
1. [部分文字列(プロパティ指定)ロジック]を2文字の分解要素の数だけ配置し、開始位置を分割の開始位置、文字数を「2」に指定する

2. [進数変換]ロジックを配置し、2文字ごとに分解したデータを10進数から2進数に変換する
3. [連結]ロジックを配置し、2進数に変換したデータを連結する
4. [進数変換]ロジックを配置し、連結したデータを2進数から16進数に変換する
補足
■ファイルシステム書き込みの入力データについて
ファイルシステム書き込みの入力データは、バイナリ形式またはBase64形式のみ対応しています。
16進数変換されたデータはいずれの形式にも対応していないため、進数変換が正常に完了した場合でも、想定されている結果が得られない可能性があります。
■HULFT Square上におけるバイナリ形式データの扱いについて
HULFT Square上でバイナリ形式データを、マッピング上で編集することは想定されていません。
そのため、マッピングロジック上からファイルシステム書き込み用のバイナリ形式データを作成することはできません。
■上記実装案の注意事項
本実装ロジックで出力される値は、10進数の値を直接16進数に変換した場合とは異なる値となります。
■参考
2.3 HULFT Square Designerの機能の詳細 2.3.3 アーキテクチャ 2.3.3.2 データ型
コメント
0件のコメント
記事コメントは受け付けていません。