Main Content

de2bi

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

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

설명

b = de2bi(d)는 음이 아닌 10진수 정수 d를 이진 행 벡터로 변환합니다. d가 벡터인 경우 출력 b는 각 행이 d의 대응하는 요소의 이진 형식에 해당하는 행렬입니다.

b = de2bi(d,n)n개 열의 출력값을 가집니다.

b = de2bi(d,n,p)는 음이 아닌 10진수 정수 dp진법 행 벡터로 변환합니다.

b = de2bi(d,[],p)는 기수 p를 지정합니다.

예제

b = de2bi(d,___,flg)flg를 사용하여 b의 첫 번째 열이 최하위 자릿수인지 최상위 자릿수인지 결정합니다.

예제

모두 축소

이 예제에서는 10진수를 그에 해당하는 2진법으로 변환하는 방법을 보여줍니다.

d_array = [1 2 3 4];

de2bi 함수를 사용하여 10진수 배열을 2진수로 변환합니다. 가장 왼쪽 요소가 최상위 자릿수가 되도록 지정하고 원하는 열의 수를 5로 설정합니다. 출력값은 각 행이 입력의 10진수 값에 해당하는 4×5 행렬이 됩니다. d_array에서 가장 큰 10진수 값은 3개의 열로 표현될 수 있으므로 de2bi는 지정된 최상위 비트 쪽에 0으로 구성된 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

가장 왼쪽에 최상위 비트를 지정한 경우 출력 행은 다음과 같습니다.

1 = 0 ( 2 2 ) + 0 ( 2 1 ) + 1 ( 2 0 )

2 = 0 ( 2 2 ) + 1 ( 2 1 ) + 0 ( 2 0 )

3 = 0 ( 2 2 ) + 1 ( 2 1 ) + 1 ( 2 0 )

4 = 1 ( 2 2 ) + 0 ( 2 1 ) + 0 ( 2 0 )

b_array = de2bi(d_array,'right-msb')
b_array = 4×3

     1     0     0
     0     1     0
     1     1     0
     0     0     1

가장 오른쪽에 최상위 비트를 지정한 경우 출력 행은 다음과 같습니다.

1 = 1 ( 2 0 ) + 0 ( 2 1 ) + 0 ( 2 2 )

2 = 0 ( 2 0 ) + 1 ( 2 1 ) + 0 ( 2 2 )

3 = 1 ( 2 0 ) + 1 ( 2 1 ) + 0 ( 2 2 )

4 = 0 ( 2 0 ) + 0 ( 2 1 ) + 1 ( 2 2 )

입력 인수

모두 축소

10진수 입력값으로, 음이 아닌 정수, 벡터 또는 행렬로 지정됩니다. d가 행렬인 경우 열 벡터 d(:)처럼 취급됩니다.

참고

정확한 변환을 위해 d252보다 작거나 같아야 합니다.

데이터형: double | single | integer | fi

출력 열 개수로, 양의 스칼라로 지정됩니다. 필요한 경우 d의 2진수 표현은 추가 0으로 채워집니다.

데이터형: double | single

출력값 b의 기수로, 2보다 크거나 같은 정수로 지정됩니다.

  • d가 벡터인 경우 출력값 b는 각 행이 d의 대응하는 요소의 p진법 형식에 해당하는 행렬입니다.

  • d가 행렬인 경우 de2bi는 이를 열 벡터 d(:)처럼 취급합니다.

데이터형: double | single

MSB 플래그로, 'right-msb' 또는 'left-msb'로 지정됩니다.

  • 'right-msb' –– 이진 출력값 b의 오른쪽(또는 마지막) 열을 최상위 비트(또는 최상위 자릿수)로 지정합니다.

  • 'left-msb' –– 이진 출력값 b의 왼쪽(또는 첫 번째) 열을 최상위 비트(또는 최상위 자릿수)로 지정합니다.

데이터형: char | string

출력 인수

모두 축소

d의 2진수 표현으로, 행 벡터 또는 행렬로 반환됩니다. 출력값은 입력값과 데이터형이 같습니다.

확장 기능

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

버전 내역

R2006a 이전에 개발됨

모두 축소

R2021b: 권장되지 않음

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)

참고 항목

|