Main Content

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

bitset

特定の位置のビットを設定する

説明

intout = bitset(A,bit) は、位置 bit を 1 (オン) に設定した A の値を返します。

intout = bitset(A,bit,assumedtype) は、A のデータ型が assumedtype であると仮定します。

intout = bitset(A,bit,V) は、位置 bit を値 V に設定した A を返します。

  • V が 0 の場合、ビット位置 bit は 0 (オフ) に設定されます。

  • V が非ゼロの場合、ビット位置 bit は 1 (オン) に設定されます。

intout = bitset(A,bit,V,assumedtype) は、A のデータ型が assumedtype であると仮定します。

すべて折りたたむ

数値に 2 のべき乗を加算します。

A = 4;
intout = bitset(A,4:6)
intout = 1×3

    12    20    36

bitset がビット 4 ~ 6 を順次オンにすることがわかります。

c = dec2bin(intout)
c = 3x6 char array
    '001100'
    '010100'
    '100100'

assumedtype の範囲外の整数を指定すると、MATLAB® はエラーをスローします。たとえば、int8 整数の最大値は 127 なので、bitset(300,5,'int8') はエラーを返します。

このエラーを回避するには、指定したデータ型の範囲内の値を入力します。

intout = bitset(75,5,'int8')
intout = 91

数値から 2 のべき乗を順次減算します。

a = intmax('uint8')
a = uint8
    255
for k = 0:7
   a = bitset(a, 8-k, 0);
   b(1,k+1) = a;
end
b
b = 1x8 uint8 row vector

   127    63    31    15     7     3     1     0

複数のビットを異なる値に設定する

bits = 2:6;
val = [1 0 0 1 1];
intout = bitset(0,bits,val,'int8')
intout = 1×5

     2     0     0    16    32

入力引数

すべて折りたたむ

入力値。配列として指定します。Abit および V はそれぞれ、スカラーまたは同じサイズの配列です。

  • A が double 配列で、assumedtype が指定されていない場合、MATLAB®A を符号なし 64 ビット整数として扱います。

  • assumedtype が指定されている場合、A のすべての要素は assumedtype の範囲内の整数値でなければなりません。

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

ビット位置。整数または整数配列として指定します。Abit および V はそれぞれ、スカラーまたは同じサイズの配列です。bit の値は、1 (最下位ビット) と A の整数クラスにおけるビット数の間でなければなりません。

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

想定される A のデータ型。'uint64''uint32''uint16''uint8''int64''int32''int16' または 'int8' のいずれかを指定します。

  • A が double 配列の場合、assumedtype には任意の有効な整数型を指定できますが、既定では 'uint64' が指定されます。

  • A が整数型配列の場合、assumedtype にはそれと同じ整数型を指定しなければなりません。

データ型: char | string

ビット値。スカラーまたは数値配列として指定します。Abit および V はそれぞれ、スカラーまたは同じサイズの配列です。

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

出力引数

すべて折りたたむ

調整された整数。配列として返されます。intout のデータ型は A と同じです。

  • Abit および V がすべてスカラーの場合は、intout もスカラーになります。

  • Abit または V のいずれかが配列の場合、intout はその配列と同じサイズになります。

拡張機能

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

GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。

HDL コード生成
HDL Coder™ を使用して FPGA 設計および ASIC 設計のための VHDL、Verilog および SystemVerilog のコードを生成します。

バージョン履歴

R2006a より前に導入