Main Content

bi2de

(권장되지 않음) 2진수를 P진법으로 변환

bi2de 함수는 권장되지 않습니다. 대신 bit2int 함수를 사용하십시오. 자세한 내용은 버전 내역 항목을 참조하십시오.

설명

d = bi2de(b)는 이진 행 벡터 b를 10진수 정수로 변환합니다.

예제

d = bi2de(b,flg)는 이진 행 벡터를 10진수 정수로 변환합니다. 여기서 flg는 최상위 자릿수의 위치를 결정합니다.

d = bi2de(b,p)p진법 행 벡터 b를 10진수 정수로 변환합니다.

d = bi2de(b,p,flg)p진법 행 벡터를 10진수 정수로 변환합니다. 여기서 flg는 최상위 자릿수의 위치를 결정합니다.

예제

모두 축소

이 예제에서는 2진수를 10진수 정수로 변환하는 방법을 보여줍니다. 오른쪽 최상위 자릿수와 왼쪽 최상위 자릿수의 차이를 강조합니다.

b1 = [0 1 0 1 1];
b2 = [1 1 1 0];

bi2de 함수를 사용하여 두 개의 2진수 배열을 10진수로 변환합니다. 가장 왼쪽 요소를 최상위 자릿수로 지정합니다. b1의 변환 출력은 0 ( 2 4 ) + 1 ( 2 3 ) + 0 ( 2 2 ) + 1 ( 2 1 ) + 1 ( 2 0 ) = 1 1 에 해당하고 b2의 변환 출력은 1 ( 2 3 ) + 1 ( 2 2 ) + 1 ( 2 1 ) + 0 ( 2 0 ) = 1 4 에 해당합니다.

d1 = bi2de(b1,'left-msb')
d1 = 11
d2 = bi2de(b2,'left-msb')
d2 = 14

가장 오른쪽 요소를 최상위 자릿수로 지정합니다. b1의 변환 출력은 0 ( 2 0 ) + 1 ( 2 1 ) + 0 ( 2 2 ) + 1 ( 2 3 ) + 1 ( 2 4 ) = 2 6 에 해당하고 b2의 변환 출력은 1 ( 2 0 ) + 1 ( 2 1 ) + 1 ( 2 2 ) + 0 ( 2 3 ) = 7 에 해당합니다.

d1 = bi2de(b1,'right-msb')
d1 = 26
d2 = bi2de(b2,'right-msb')
d2 = 7

입력 인수

모두 축소

이진 입력값으로, 양의 정수 또는 논리값으로 구성된 행 벡터나 행렬로 지정됩니다.

참고

b252보다 작거나 같은 정수를 나타내야 합니다.

데이터형: 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 이전에 개발됨

모두 축소

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

참고 항목

|