Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

de2bi

10 進数のバイナリ ベクトル変換

説明

b = de2bi(d) は、非負の 10 進整数 d をバイナリ行ベクトルに変換します。d がベクトルの場合は、出力 b は行列で、各行は d の対応する要素のバイナリ形式です。

b = de2bi(d,n) は、n 列の出力をもちます。

b = de2bi(d,n,p) は、非負の 10 進整数 d を基数が p の行ベクトルに変換します。

b = de2bi(d,[],p) は、基数 p を指定します。

b = de2bi(d,___,flg)flg を使用して、b の 1 列目が最小次数を含むか最大次数を含むかを決定します。

すべて折りたたむ

10 進数の 1 ~ 10 を、等価のバイナリ表現に変換します。

d = (1:10)';
b = de2bi(d);
[d b]
ans = 10×5

     1     1     0     0     0
     2     0     1     0     0
     3     1     1     0     0
     4     0     0     1     0
     5     1     0     1     0
     6     0     1     1     0
     7     1     1     1     0
     8     0     0     0     1
     9     1     0     0     1
    10     0     1     0     1

3 および 9 を 2 進数に変換します。各値は 4 要素の行で表現されます。

b = de2bi([3 9])
b = 2×4

     1     1     0     0
     1     0     0     1

列数を 5 に設定し、変換を繰り返します。出力の 5 番目の列にゼロが付加されています。

bb = de2bi([3 9],5)
bb = 2×5

     1     1     0     0     0
     1     0     0     1     0

10 進数 1 ~ 6 を、基数 3 の等価の値に変換します。左端のビットを最上位桁として設定します。

d = (1:6)';
t = de2bi(d,[],3,'left-msb');
[d t]
ans = 6×3

     1     0     1
     2     0     2
     3     1     0
     4     1     1
     5     1     2
     6     2     0

この例では、10 進数を基数 2 の等価の 2 進数に変換する方法を示します。

d_array = [1 2 3 4];

関数de2biを使用して、10 進数の配列を 2 進数に変換します。左端の要素を最上位桁として指定し、目的の列の数を 5 に設定します。出力は、各行が入力の 10 進数値に対応する 4 行 5 列の行列になります。d_array の最大の 10 進数値は 3 列で表現できるため、de2bi は行列の指定された最上位ビット側にゼロの列を 2 列付加します。指定する列が少なすぎると変換は失敗します。

b_array = de2bi(d_array,5,'left-msb')
b_array = 4×5

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

b_array = de2bi(d_array,5,'right-msb')
b_array = 4×5

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

列数を指定しない場合、列数は入力の最大の 10 進数を表現するために必要な数になります。

b_array = de2bi(d_array,'left-msb')
b_array = 4×3

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

左端を最上位ビットに指定する場合の出力行は以下に対応します。

1=0(22)+0(21)+1(20)

2=0(22)+1(21)+0(20)

3=0(22)+1(21)+1(20)

4=1(22)+0(21)+0(20)

b_array = de2bi(d_array,'right-msb')
b_array = 4×3

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

右端を最上位ビットに指定する出力行は以下に対応します。

1=1(20)+0(21)+0(22)

2=0(20)+1(21)+0(22)

3=1(20)+1(21)+0(22)

4=0(20)+0(21)+1(22)

入力引数

すべて折りたたむ

10 進数入力。非負の整数、ベクトル、または行列として指定します。d が行列の場合、列ベクトル d(:) と同様に扱われます。

メモ

変換が正確に行われるようにするには、d252 以下でなければなりません。

データ型: double | single | integer | fi

正のスカラーで指定される出力列の数。必要に応じて、d のバイナリ表現には、ゼロが付加されます。

データ型: double | single

出力 b の基数。2 以上の整数として指定します。

  • d がベクトルの場合、出力 b は行列であり、その各行は d の対応する要素を基数 p 形式にしたものになります。

  • d が行列の場合、de2bi はそれをベクトル d(:) のように扱います。

データ型: double | single

MSB フラグ。'right-msb' または 'left-msb' として指定します。

  • 'right-msb' –– バイナリ出力 b の右 (または最後) の列を最上位ビット (または最上位桁) として示します。

  • 'left-msb' –– バイナリ出力 b の左 (または最初) の列を最上位ビット (または最上位桁) として示します。

データ型: char | string

出力引数

すべて折りたたむ

d のバイナリ表現。行ベクトルまたは行列として返されます。出力のデータ型は入力のデータ型と同じです。

拡張機能

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

参考

R2006a より前に導入