de2bi
(권장되지 않음) 10진수를 P진법으로 변환
설명
예제
10진수를 2진법으로 변환
이 예제에서는 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
가장 왼쪽에 최상위 비트를 지정한 경우 출력 행은 다음과 같습니다.
b_array = de2bi(d_array,'right-msb')
b_array = 4×3
1 0 0
0 1 0
1 1 0
0 0 1
가장 오른쪽에 최상위 비트를 지정한 경우 출력 행은 다음과 같습니다.
입력 인수
d
— 10진수 입력값
음이 아닌 정수 | 벡터 | 행렬
10진수 입력값으로, 음이 아닌 정수, 벡터 또는 행렬로 지정됩니다. d
가 행렬인 경우 열 벡터 d(:)
처럼 취급됩니다.
참고
정확한 변환을 위해 d
는 252보다 작거나 같아야 합니다.
데이터형: double
| single
| integer
| fi
n
— 출력 열 개수
양의 정수 스칼라
출력 열 개수로, 양의 스칼라로 지정됩니다. 필요한 경우 d
의 2진수 표현은 추가 0으로 채워집니다.
데이터형: double
| single
flg
— MSB 플래그
'right-msb'
(디폴트 값) | 'left-msb'
MSB 플래그로, 'right-msb'
또는 'left-msb'
로 지정됩니다.
'right-msb'
–– 이진 출력값b
의 오른쪽(또는 마지막) 열을 최상위 비트(또는 최상위 자릿수)로 지정합니다.'left-msb'
–– 이진 출력값b
의 왼쪽(또는 첫 번째) 열을 최상위 비트(또는 최상위 자릿수)로 지정합니다.
데이터형: char
| string
확장 기능
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) |
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)