bi2de
(권장되지 않음) 2진수를 P진법으로 변환
설명
예제
이 예제에서는 2진수를 10진수 정수로 변환하는 방법을 보여줍니다. 오른쪽 최상위 자릿수와 왼쪽 최상위 자릿수의 차이를 강조합니다.
b1 = [0 1 0 1 1]; b2 = [1 1 1 0];
bi2de 함수를 사용하여 두 개의 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는 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형 또는 논리형인 경우 출력 데이터형은 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.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 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)