7.5.12 シフト演算を使用する
入力値を16進文字列であるものとし,シフト演算を実行します。シフト演算では,シフト量,シフト方向,シフト種別で指定した方法でシフト演算した結果を出力サイズで指定したサイズ分,下位ビットから取得し,返します。入力値が16進文字列以外の場合は,エラーの値(NaN)を返します。入力値が64ビットを超える場合,64ビットより上位ビットを切り捨てます。
なお,シフト演算ファンクションは,ビッグエンディアンで処理します。
- 〈この項の構成〉
(2) 設定手順
シフト演算を設定する手順を次に示します。
-
パレットからシフト演算ファンクション(shift)を選択して,マッピングビューアに配置します。
-
マッピング線を設定します。
-
次のどちらかの方法で[シフト演算]ダイアログを表示させます。
-
シフト演算ファンクションを右クリックして,[設定]を選択します。
-
シフト演算ファンクションをダブルクリックします。
[シフト演算]ダイアログが表示されます。
[シフト演算]ダイアログの詳細については,マニュアル「サービスプラットフォーム リファレンス」の「1.6.30 シフト演算ダイアログ」を参照してください。
-
-
[入力]にシフト演算の入力値を指定する場合,[ノード選択]ボタンをクリックします。
[ノード選択]ダイアログが表示されます。
-
入力値となるノードセットを指定します。
[入力]にシフト演算の入力値が設定されます。
-
[入力]に指定されている入力値に条件を設定して,その条件を満たす場合だけマッピングさせたい場合,[ノード条件設定]ボタンをクリックします。
[ノード条件設定]ダイアログが表示されます。
ノード条件の設定方法については,「7.7 ノード条件を設定する」を参照してください。また,[ノード条件設定]ダイアログについては,マニュアル「サービスプラットフォーム リファレンス」の「1.6.11 ノード条件設定ダイアログ」を参照してください。
-
[入力]にシフト演算の対象とするファンクションを指定したい場合,[ファンクション選択]ボタンをクリックします。
[ファンクション選択]ダイアログが表示されます。
[ファンクション選択]ダイアログの詳細については,マニュアル「サービスプラットフォーム リファレンス」の「1.6.9 ファンクション選択ダイアログ」を参照してください。
-
シフト量を指定します。
-
出力サイズを指定します。
-
シフト方向を指定します。
-
シフト種別を指定します。
-
[OK]ボタンをクリックします。
(3) 実行例
実行例を次に示します。
入力※1 |
シフト量 |
出力サイズ |
シフト方向 |
シフト種別 |
出力結果※1※2※3 |
---|---|---|---|---|---|
76(0111 0110) |
3 |
8 |
左 |
算術 |
b0(1011 0000) |
右 |
算術 |
0e(0000 1110) |
|||
右 |
論理 |
0e(0000 1110) |
|||
89(1000 1001) |
左 |
算術 |
48(0100 1000) |
||
右 |
算術 |
f1(1111 0001) |
|||
右 |
論理 |
11(0001 0001) |
|||
76(0111 0110) |
2 |
6 |
左 |
算術 |
18(0001 1000) [d8(1101 1000)] |
右 |
算術 |
1d(0001 1101) [1d(0001 1101)] |
|||
右 |
論理 |
1d(0001 1101) [1d(0001 1101)] |
|||
89(1000 1001) |
左 |
算術 |
24(0010 0100) [24(0010 0100)] |
||
右 |
算術 |
22(0010 0010) [e2(1110 0010)] |
|||
右 |
論理 |
22(0010 0010) [22(0010 0010)] |