Main Content

bitandreduce

ビット単位の AND 演算を実行してビットの連続スライスを削減

説明

c = bitandreduce(a) は、固定小数点入力 a のビット セット全体に対してビット単位の AND 演算を実行し、結果を語長 1 の符号なし整数として返します。

c = bitandreduce(a, lidx) は、位置 lidx で開始し、LSB (位置 1 のビット) で終了するビットの連続範囲に対して、ビット単位の AND 演算を実行します。

c = bitandreduce(a, lidx, ridx) は、位置 lidx で開始し、位置 ridx で終了するビットの連続範囲に対して、ビット単位の AND 演算を実行します。

bitandreduce 引数は、次の条件を満たさなければなりません。

a.WordLength >= lidx >= ridx >= 1

すべて折りたたむ

固定小数点数を作成します。

a = fi(73,0,8,0);
disp(bin(a))
01001001

a のビット セット全体に対してビット単位の AND 演算を実行します。

c = bitandreduce(a)
c = 
     0

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Unsigned
            WordLength: 1
        FractionLength: 0

a のビットのすべての値が 1 とはならないため、出力値は 0 になります。

固定小数点ベクトルを作成します。

a = fi([12, 4, 8, 15],0,8,0);
disp(bin(a))
00001100   00000100   00001000   00001111

位置 fi(4) 以降の a の各要素のビットに対し、ビット単位の AND 演算を実行します。

c = bitandreduce(a, fi(4))
c = 
     0     0     0     1

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Unsigned
            WordLength: 1
        FractionLength: 0

値が 1 の出力 c の唯一の要素は 4 番目の要素です。これは、fi(4) から 1 の位置において値が 1 のみのものは、a の要素のみだからです。

固定小数点行列を作成します。

a = fi([7, 8, 1; 5, 9, 5; 8, 37, 2], 0, 8, 0);
disp(bin(a))
00000111   00001000   00000001
00000101   00001001   00000101
00001000   00100101   00000010

行列 a の各要素の、位置 3 で開始し位置 1 で終了するビットに対して、ビット単位の AND 演算を実行します。

c = bitandreduce(a, 3, 1)
c = 
     1     0     0
     0     0     0
     0     0     0

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Unsigned
            WordLength: 1
        FractionLength: 0

出力 c の中で値が 1 の要素は 1 つのみです。このようになるのは、a 内の対応する要素が、3 から 1 の位置において値が 1 のみの唯一の要素だからです。

入力引数

すべて折りたたむ

入力配列。スカラー、ベクトル、行列または fi オブジェクトの多次元配列として指定します。

bitandreduce は、任意のスケーリングを含む、符号付き入力および符号なし入力の両方をサポートします。符号およびスケーリングに関するプロパティは、結果の型および値に影響を与えません。bitandreduce は、格納された整数の 2 の補数のビット表現に対する演算を実行します。

データ型: 固定小数点 fi

組み込み型のスカラーとして指定された範囲の開始位置。lidx は範囲内の MSB に最も近い位置を表します。

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

組み込み型のスカラーとして指定された範囲の終了位置。ridx は範囲の LSB (位置 1 のビット) に最も近い位置を表します。

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

出力引数

すべて折りたたむ

出力配列。スカラー、ベクトル、行列または固定小数点 fi オブジェクトの多次元配列として指定されます。c は語長 1、符号なしです。

拡張機能

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

バージョン履歴

R2007b で導入