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