ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Bitwise Operator

入力に対する指定されたビット演算

ライブラリ

Logic and Bit Operations

説明

ビット演算

Bitwise Operator ブロックは、1 つまたは複数のオペランドに対して指定されたビット演算を行います。Logical Operator ブロックの論理演算とは異なり、ビット演算ではオペランドを 1 つの値ではなく複数のビットで構成される 1 つのベクトルとして扱います。

次のビット演算からいずれかを選択できます。

ビット演算説明

AND

対応するビットがすべて TRUE の場合に TRUE

OR

対応するビットの少なくとも 1 つが TRUE の場合に TRUE

NAND

対応するビットの少なくとも 1 つが FALSE の場合に TRUE

NOR

対応するビットに TRUE がない場合に TRUE

XOR

対応するビットの奇数個が TRUE の場合に TRUE

NOT

入力が FALSE の場合に TRUE (単一入力の場合にのみ使用可能)

Operations ブロック演算の制限

Bitwise Operator ブロックはシフト演算をサポートしません。シフト演算については、Shift Arithmetic ブロックを使用します。

多入力 XOR ゲートとして構成されている場合、このブロックは論理要素に関する IEEE® 標準規格に従って、剰余 2 の加算を行います。

入力と出力の動作

出力データ型は、ブロックが駆動ブロックから継承するものであり、ゼロを正確に表現しなければなりません。この条件を満たすデータ型には、符号付きおよび符号なしの整数データ型があります。

ブロック出力のサイズは、入力の数、ベクトルのサイズ、および選択された演算子によって異なります。

  • NOT 演算子は 1 つの入力だけを受け入れ、入力はスカラーまたはベクトルです。入力がベクトルの場合、出力は入力されたベクトル要素のビット論理補数を含む同じサイズのベクトルです。

  • 単一ベクトル入力の場合、このブロックはベクトルのすべての要素に対して演算 (NOT 演算を除く) を適用します。

    • ビット マスクを指定しないと、出力はスカラーになります。

    • ビット マスクを指定すると、出力はベクトルになります。

  • 入力が 2 つ以上の場合、ブロックはすべての入力の間で演算を実行します。入力がベクトルの場合、ブロックはベクトルの対応する要素間で演算を行い、ベクトル出力を生成します。

ビット マスクの動作

ブロックの動作は、ビット マスクが使用されるかどうかで異なります。

[ビット マスクの使用] チェック ボックスの状態ブロックの受け入れ対象指定する項目使用対象
選択1 入力[ビット マスク]有効な MATLAB® 式。たとえば、ビット マスク 00100101 に対する 2^5+2^2+2^0
選択解除複数入力。すべて同じ基本データ型。[入力端子の数]1 より大きい任意の正の整数

    ヒント:   {'FE73','12AC'} などの文字列を使用して、16 進ビット マスクを指定することもできます。

ビット セット演算とビット クリア演算

ビット マスクを使用して、入力に対するビットの設定とクリアを行うことができます。

実行内容Operator プロパティの設定値ビット マスクの作成に使用するもの
Bit setOR1 に設定する対応する入力ビットそれぞれに対して A 1
Bit clearAND0 に設定する対応する入力ビットそれぞれに対して A 0

8 ビット入力ベクトルの 4 番目のビットを設定するとします。ビット マスクは 00010000 になります。これは [ビットマスク] パラメーターで 2^4 として指定できます。ビットをクリアするには、ビット マスクを 11101111 とします。これは [ビット マスク] パラメーターで 2^7+2^6+2^5+2^3+2^2+2^1+2^0 として指定できます。

サポートするデータ型

Bitwise Operator ブロックは、次のデータ型をサポートします。

  • 組み込み整数

  • 固定小数点

  • boolean

浮動小数点データ型および列挙型データはサポートしません。詳細は、Simulink® ドキュメンテーションの「 Simulink でサポートされているデータ型」を参照してください。

パラメーターとダイアログ ボックス

演算子

ブロック オペランドに対してビット論理演算子を指定します。

ビット マスクの使用

ビット マスクを使用するには、これを選択します。このチェック ボックスをオフにすると [入力端子の数] が有効になり、[ビット マスク][マスクの取り扱い] が無効になります。

入力端子の数

入力の数を指定します。既定値は 1 です。

ビット マスク

単一入力に関連付けられるビットマスクを指定します。このパラメーターは、[ビット マスクの使用] をオンにする場合にのみ使用できます。

    ヒント:   53 ビットを超えるマスクを使用しないでください。そうしないと、シミュレーション中にエラー メッセージが表示されます。

マスクの取り扱い

マスクを実際値として扱うのかそれとも格納された整数として扱うのかを指定します。このパラメーターは、[ビット マスクの使用] をオンにする場合にのみ使用できます。

エンコード方式は、V = SQ + B です。詳細は、Fixed-Point Designer™ ドキュメンテーションの「スケーリング」を参照してください。[実際値] はマスクを V として扱います。[整数格納] はマスクを Q として扱います。

Bitwise Operator ブロックの符号なし入力

次のモデルモデルでは、符号なし入力に対する Bitwise Operator ブロックの動作を説明します。

各 Constant ブロックは、8 ビットの符号なし整数 (uint8) を出力します。各 Constant ブロック出力のバイナリ値を判断するには、関数 dec2bin を使用します。すべての論理演算に対応する結果を次の表にまとめます。

演算バイナリ値 10 進数

AND

00101000

40

OR

11111101

253

NAND

11010111

215

NOR

00000010

2

XOR

11111000

248

NOT

N/A

N/A

Bitwise Operator ブロックの符号付き入力

次のモデルモデルでは、符号付き入力に対する Bitwise Operator ブロックの動作を説明します。

各 Constant ブロックは、8 ビットの符号付き整数 (int8) を出力します。各 Constant ブロック出力のバイナリ値を判断するには、関数 dec2bin を使用します。すべての論理演算に対応する結果を次の表にまとめます。

演算バイナリ値 10 進数

AND

01000000

64

OR

11111011

–5

NAND

10111111

–65

NOR

00000100

4

XOR

11000010

–62

NOT

N/A

N/A

特性

直接フィードスルー

あり

サンプル時間

駆動ブロックから継承

スカラー拡張

あり、入力について

多次元化

あり

ゼロクロッシング検出

なし

この情報は役に立ちましたか?