bi2de
(非推奨) 2 進数から基数 P への変換
説明
例
この例では、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
入力引数
バイナリ入力。行ベクトルまたは正の整数値あるいは logical 値の行列として指定します。
メモ
b は、252 以下の整数を表していなければなりません。
データ型: double | single | logical | integer | fi
MSB フラグ。'right-msb' または 'left-msb' として指定します。
'right-msb'–– バイナリ入力 b の右 (または最後) の列を最上位ビット (または最上位桁) として示します。'left-msb'–– バイナリ入力 b の左 (または最初) の列を最上位ビット (または最上位桁) として示します。
データ型: char | string
入力 b の基数。2 以上の整数として指定します。
データ型: double | single
出力引数
10 進数の出力。非負の整数または行ベクトルとして返されます。b が行列の場合、各行は基数 p の数値を表します。この場合は、出力 d は列ベクトルで、その各要素は b の対応する行の 10 進表現です。
入力データ型に応じて、次のようになります。
整数データ型と
dの値は、入力と同じ整数データ型で格納できます。出力データ型には、入力と同じデータ型が使用されます。それ以外の場合、10 進数の出力を格納できる十分な大きさのデータ型が選択されます。入力データ型が double または logical データ型の場合、出力データ型は double です。
入力データ型が single データ型の場合、出力データ型は single です。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
バージョン履歴
R2006a より前に導入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 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)