Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Shift Arithmetic

信号のビットや 2 進数小数点をシフト

  • Shift Arithmetic block

ライブラリ:
Simulink / Logic and Bit Operations
HDL Coder / Logic and Bit Operations

説明

Shift Arithmetic ブロックでは、入力信号のビットまたは 2 進小数点あるいはその両方をシフトできます。

たとえば、データ型 sfix(8) の入力で 2 進小数点を右または左に 2 桁シフトした結果は以下の 10 進数の値になります。

シフト演算バイナリ値10 進数

シフトなし (元の番号)

11001.011

–6.625

2 進小数点を 右 に 2 桁シフトする

1100101.1

–26.5

2 進小数点を左に 2 桁シフトする

110.01011

–1.65625

このブロックは、符号付き数値の算術ビットシフトを実行します。したがって、ブロックは各ビット シフトの最上位ビットを再循環します。データ型 sfix(8) の入力でビットを右または左に 2 桁シフトした結果は以下の 10 進数の値となります。

シフト演算バイナリ値10 進数

シフトなし (元の番号)

11001.011

–6.625

右に 2 桁ビットシフトする

11110.010

–1.75

左 に 2 桁ビットシフトする

00101.100

5.5

すべて展開する

次の例は、2 進小数点シフトの効果を示しています。

model='ex_shift_arithmetic_block_binary_point_shifts';
open_system(model)

この例では、ダイアログ ボックスとブロック入力端子を用いた右ビット シフトの動作の比較を示します。

model='ex_shift_arithmetic_block_right_bit_shifts';
open_system(model)

端子

入力

すべて展開する

演算される数値。スカラー、ベクトル、または配列として指定します。

データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

シフトするビット数。スカラーとして指定します。

データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

出力

すべて展開する

演算の結果。スカラー、ベクトル、または配列として返されます。

データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

パラメーター

すべて展開する

シフトするビットをダイアログ ボックスに入力するか、入力端子から値を継承するかを指定します。

調整可能: No

プログラムでの使用

ブロック パラメーター: BitShiftNumberSource
: 文字ベクトル、string
: 'Dialog' | 'Input port'
既定の設定: 'Dialog'

ビット シフト値のスカラー、ベクトル、または配列を指定します。このパラメーターは [シフトするビット:]、[ソース][ダイアログ] であるときに利用できます。

方向説明
または ビット シフトの指定には正の整数を使用します。
双方向 右シフトには正の整数、左シフトには負の整数を使用します。

調整可能: No

プログラムでの使用

ブロック パラメーター: BitShiftNumber
: 文字ベクトル、string
: scalar
既定の設定: '9'

ビットをシフトする方向を、左、右、または双方向のいずれかに指定します。

調整可能: No

プログラムでの使用

ブロック パラメーター: BitShiftDirection
: 文字ベクトル、string
: 'Left' | 'Right' | 'Bidrectional'
既定の設定: 'Bidrectional'

入力信号のバイナリ ポイントがシフトされる場所の整数を指定します。正の値は右シフトを示し、負の値は左シフトを示します。

調整可能: No

プログラムでの使用

ブロック パラメーター: BinPtShiftNumber
: 文字ベクトル、string
: 'Dialog' | 'Input port'
既定の設定: 'Dialog'

ブロックに範囲外シフト値が含まれているとき、シミュレーション中に警告またはエラーを生成するかどうかを指定します。オプションは次のとおりです。

  • None — Simulink® は何のアクションも実行しません。

  • Warning — Simulink で警告が表示され、シミュレーションは続行されます。

  • Error — Simulink ではシミュレーションが終了し、エラーが表示されます。

詳細については、範囲外ビット シフト値のシミュレーションおよびアクセラレータ モードを参照してください。

プログラムでの使用

ブロック パラメーター: DiagnosticForOORShift
: 文字ベクトル、string
値: 'None' | 'Warning' | 'Error'
既定の設定: 'None'

このチェック ボックスをオンにすると、範囲外のビット シフト値から保護するために生成コードに条件文を含めます。このチェック ボックスは [シフトするビット:]、[ソース][入力端子] であるときに利用できます。

詳細については、範囲外ビット シフト値に対するコード生成を参照してください。

プログラムでの使用

ブロック パラメーター: CheckOORBitShift
: 文字ベクトル、string
: 'on' | 'off'
既定の設定: 'off'

ブロックの特性

データ型

double | fixed point | half | integer | single

直達

はい

多次元信号

いいえ

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

詳細

すべて展開する

アルゴリズム

すべて展開する

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

PLC コード生成
Simulink® PLC Coder™ を使用して構造化テキスト コードを生成します。

固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。

バージョン履歴

R2006a より前に導入