de2bi
(非推奨) 10 進数から基数 P への変換
説明
例
この例では、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
左端を最上位ビットに指定する場合の出力行は以下に対応します。
b_array = de2bi(d_array,'right-msb')b_array = 4×3
1 0 0
0 1 0
1 1 0
0 0 1
右端を最上位ビットに指定する出力行は以下に対応します。
入力引数
10 進数入力。非負の整数、ベクトル、または行列として指定します。d が行列の場合、列ベクトル d(:) と同様に扱われます。
メモ
変換が正確に行われるようにするには、d は 252 以下でなければなりません。
データ型: double | single | integer | fi
正のスカラーで指定される出力列の数。必要に応じて、d のバイナリ表現には、ゼロが付加されます。
データ型: double | single
MSB フラグ。'right-msb' または 'left-msb' として指定します。
'right-msb'–– バイナリ出力bの右 (または最後) の列を最上位ビット (または最上位桁) として示します。'left-msb'–– バイナリ出力bの左 (または最初) の列を最上位ビット (または最上位桁) として示します。
データ型: char | string
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
バージョン履歴
R2006a より前に導入de2bi の代わりに int2bit を使用してください。数値表現を 10 進数から 2 以外の基数に変換するには、dec2base を使用します。
次の表に記載するコードは、推奨される関数を使用した、各種入力の 10 進数から 2 進数への変換を示しています。
| 非推奨の機能 | 推奨される代替案 |
|---|---|
% Default (left MSB) n = randi([1 100]); % Number of integers bpi = 3; % Bits per integer x = randi([0,2^bpi-1],n,1); y = reshape(de2bi(x,bpi,'left-msb')',[],1) | % Default (left MSB) n = randi([1 100]); % Number of integers bpi = 3; % Bits per integer x = randi([0,2^bpi-1],n,1); y = int2bit(x,bpi) |
% Default vector (or scalar) input
x = [4 5 9];
y = de2bi(x) | % Default vector (or scalar) input
x = [4 5 9];
y = int2bit(x,ceil(log2(max(x) + 1)), 0)' |
% Right MSB n = randi([1 100]); % Number of integers bpi = 5; % Bits per integer x = randi([0,2^bpi-1],n,1); y = reshape(de2bi(x,bpi,'right-msb')',[],1) | % Right MSB n = randi([1 100]); % Number of integers bpi = 5; % Bits per integer x = randi([0,2^bpi-1],n,1); y = int2bit(x,bpi,false) |
% Right MSB, signed input n = randi([1 100]); % Number of integers bpi = 8; % Bits per integer N = 2^bpi; x = randi([-N/2,N/2-1],n,1); y = reshape(de2bi(x+(x<0)*N,bpi,'right-msb')',[],1) | % Right MSB, signed input n = randi([1 100]); % Number of integers bpi = 8; % Bits per integer N = 2^bpi; x = randi([-N/2,N/2-1],n,1); y = int2bit(x+(x<0)*N,bpi,false) |
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)