bi2de
(非推奨) 2 進数から基数 P への変換
説明
例
2 進数から基数 10 への変換
この例では、2 進数を 10 進数整数に変換する方法を示します。最上位桁の位置決めの左右での違いに注目します。
b1 = [0 1 0 1 1]; b2 = [1 1 1 0];
関数 bi2de
を使用して、2 つの 2 進数配列を 10 進数に変換します。最上位桁を左端の要素に割り当てます。変換の出力では、b1
は 、b2
は に対応します。
d1 = bi2de(b1,'left-msb')
d1 = 11
d2 = bi2de(b2,'left-msb')
d2 = 14
最上位桁を右端の要素に割り当てます。変換の出力では、b1
は 、b2
は に対応します。
d1 = bi2de(b1,'right-msb')
d1 = 26
d2 = bi2de(b2,'right-msb')
d2 = 7
入力引数
b
— バイナリ入力
行ベクトル | 行列
バイナリ入力。行ベクトルまたは正の整数値あるいは logical 値の行列として指定します。
メモ
b
は、252 以下の整数を表していなければなりません。
データ型: double
| single
| logical
| integer
| fi
flg
— MSB フラグ
'right-msb'
(既定値) | 'left-msb'
MSB フラグ。'right-msb'
または 'left-msb'
として指定します。
'right-msb'
–– バイナリ入力 b の右 (または最後) の列を最上位ビット (または最上位桁) として示します。'left-msb'
–– バイナリ入力 b の左 (または最初) の列を最上位ビット (または最上位桁) として示します。
データ型: char
| string
p
— 基数
2
(既定値) | 正の整数スカラー
入力 b
の基数。2
以上の整数として指定します。
データ型: double
| single
出力引数
d
— 10 進数の出力
非負の整数 | ベクトル
10 進数の出力。非負の整数または行ベクトルとして返されます。b
が行列の場合、各行は基数 p
の数値を表します。この場合は、出力 d
は列ベクトルで、その各要素は b
の対応する行の 10 進表現です。
入力データ型に応じて、次のようになります。
整数データ型と
d
の値は、入力と同じ整数データ型で格納できます。出力データ型には、入力と同じデータ型が使用されます。それ以外の場合、10 進数の出力を格納できる十分な大きさのデータ型が選択されます。入力データ型が double または logical データ型の場合、出力データ型は double です。
入力データ型が single データ型の場合、出力データ型は single です。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
バージョン履歴
R2006a より前に導入R2021b: 非推奨
bi2de
の代わりに bit2int
を使用してください。2 進法の表現ではない数値を 10 進数に変換する場合は、base2dec
を使用します。
次の表に記載するコードは、推奨される関数を使用した、各種入力の 2 進数から 10 進数への変換を示しています。
非推奨の機能 | 推奨される代替案 |
---|---|
% Default (left MSB) n = randi([1 100]); % Number of integers bpi = 3; % Bits per integer x = randi([0,1],n*bpi,1); y = bi2de(reshape(x,bpi,[])','left-msb') | % Default (left MSB) n = randi([1 100]); % Number of integers bpi = 3; % Bits per integer x = randi([0,1],n*bpi,1); y = bit2int(x,bpi) |
% Default row vector (or matrix) input
x = [0 1 1];
bi2de(x) | % Default row vector (or matrix) input
x = [0 1 1];
bit2int(x',length(x),0)' |
% Right MSB, logical input n = randi([1 100]); % Number of integers bpi = 5; % Bits per integer x = logical(randi([0,1],n*bpi,1)); y = bi2de(reshape(x,bpi,[])','right-msb') | % Right MSB, logical input n = randi([1 100]); % Number of integers bpi = 5; % Bits per integer x = logical(randi([0,1],n*bpi,1)); y = bit2int(x,bpi,false) |
% Right MSB, signed input, single input n = randi([1 100]); % Number of integers bpi = 8; % Bits per integer x = randi([0,1],n*bpi,1,'single'); y = bi2de(reshape(x,bpi,[])','right-msb'); N = 2^bpi; y = y - (y>=N/2)*N | % Right MSB, signed input, single input n = randi([1 100]); % Number of integers bpi = 8; % Bits per integer x = randi([0,1],n*bpi,1,'single'); y = bit2int(x,bpi,false); N = 2^bpi; y = y - (y>=N/2)*N |
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)