Main Content

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

int2bit

整数からビットへの変換

R2021b 以降

説明

Y = int2bit(X,n) は、最初のビットを最上位ビット (MSB) として、X 内の各整数要素を、Y 内の n 個の列方向ビットに変換します。

Y = int2bit(X,n,msbfirst) は、Yn 個の列方向ビットの各セットにおける最初のビットが MSB か最下位ビット (LSB) かを示します。

すべて折りたたむ

整数の行ベクトルを指定します。

X = [12 5]
X = 1×2

    12     5

変換出力用に 4 個の列方向ビット要素を指定します。次に、整数をビットに変換します。

n = 4;
Y = int2bit(X,n)
Y = 4×2

     1     0
     1     1
     0     0
     0     1

整数の行列を指定します。

X = int8([10 6 14; 11 5 9])
X = 2x3 int8 matrix

   10    6   14
   11    5    9

出力用の 4 個の列方向ビット要素の各セットにおける最初のビットが LSB であることを指定します。次に、整数をビットに変換します。

n = 4;
msbfirst = false;
Y = int2bit(X,n,msbfirst)
Y = 8x3 int8 matrix

   0   0   0
   1   1   1
   0   1   1
   1   0   1
   1   1   1
   1   0   0
   0   1   0
   1   0   1

整数の配列を指定します。

X = randi([0,9],4,3,2,'uint16')
X = 4x3x2 uint16 array
X(:,:,1) =

   8   6   9
   9   0   9
   1   2   1
   9   5   9


X(:,:,2) =

   9   4   6
   4   9   0
   8   7   8
   1   9   9

変換出力用に 3 個の列方向ビット要素を指定します。次に、整数をビットに変換します。

n = 3;
Y = int2bit(X,n)
Y = 12x3x2 uint8 array
Y(:,:,1) =

   0   1   0
   0   1   0
   0   0   1
   0   0   0
   0   0   0
   1   0   1
   0   0   0
   0   1   0
   1   0   1
   0   1   0
   0   0   0
   1   1   1


Y(:,:,2) =

   0   1   1
   0   0   1
   1   0   0
   1   0   0
   0   0   0
   0   1   0
   0   1   0
   0   1   0
   0   1   0
   0   0   0
   0   0   0
   1   1   1

整数の行ベクトルを指定します。

X = [153, -103, 103, -128] 
X = 1×4

   153  -103   103  -128

変換出力用に 8 個の列方向ビット要素を指定します。次に、整数をビットに変換します。

n = 8;
Y1 = int2bit(X,n)
Y1 = 8×4

     1     1     0     1
     0     0     1     0
     0     0     1     0
     1     1     0     0
     1     1     0     0
     0     0     1     0
     0     0     1     0
     1     1     1     0

ビットを変換して整数に戻し、その値を確認します。符号付き整数を 2 の補数値として正しく表すには 8 個より多くのビットを必要とするため、得られた整数は元の整数と一致しません。

X1 = bit2int(Y1,n,IsSigned=true)
X1 = 1×4

  -103  -103   103  -128

isequal(X,X1)
ans = logical
   0

変換出力用に 9 個の列方向ビット要素を指定します。次に、整数をビットに変換します。

n = 9;
Y2 = int2bit(X,n)
Y2 = 9×4

     0     1     0     1
     1     1     0     1
     0     0     1     0
     0     0     1     0
     1     1     0     0
     1     1     0     0
     0     0     1     0
     0     0     1     0
     1     1     1     0

ビットを変換して整数に戻し、その値を確認します。得られた整数は元の整数と一致しています。これは、9 つのビットで 2 の補数値を正しく表せていることを示しています。

X2 = bit2int(Y2,n,IsSigned=true)
X2 = 1×4

   153  -103   103  -128

isequal(X,X2)
ans = logical
   1

入力引数

すべて折りたたむ

整数。整数値のスカラー、ベクトル、行列、または 3 次元配列として指定します。

例: [-10 2] は、1 行 2 列のサイズの入力行ベクトルを指定します。

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

ビットへの変換後のビット数。正の整数として指定します。ビット数 n には符号付きビットが含まれます。

データ型: double

最初が MSB であることの指定。数値または logical 1 (true) または 0 (false) として指定します。

  • true –– X 内の n 個の列方向ビットの各セットについて、最初のビットが MSB になります。

  • false –– X 内の n 個の列方向ビットの各セットについて、最初のビットが LSB になります。

データ型: logical

出力引数

すべて折りたたむ

入力整数のビット表現。列ベクトル、行列、または 3 次元配列として返されます。Y の次元は X と同じになりますが、Y の行数は X の行数の n 倍になります。出力 Y は、指定された方向の n 個の最下位ビットで構成されます。nX の値を表現するのに必要なビット数より小さい場合、出力 Yn 個の最下位ビットで構成されます。

Y のデータ型は、X のデータ型によって異なります。

  • X が浮動小数点データ型の場合、Y は浮動小数点データ型になる。

  • X が組み込みの符号なし整数データ型の場合、Y のデータ型は uint8 になる。

  • X が組み込みの符号付き整数データ型の場合、Y のデータ型は int8 になる。

  • X のデータ型が double の場合、Y のデータ型は double になり、n は 53 を超えない。

  • X のデータ型が single の場合、Y のデータ型は single になり、n は 24 を超えない。

拡張機能

バージョン履歴

R2021b で導入

すべて展開する

参考

関数

ブロック