de2bi
(권장되지 않음) 10진수를 P진법으로 변환
설명
예제
이 예제에서는 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
가장 오른쪽에 최상위 비트를 지정한 경우 출력 행은 다음과 같습니다.
입력 인수
10진수 입력값으로, 음이 아닌 정수, 벡터 또는 행렬로 지정됩니다. d가 행렬인 경우 열 벡터 d(:)처럼 취급됩니다.
참고
정확한 변환을 위해 d는 252보다 작거나 같아야 합니다.
데이터형: double | single | integer | fi
출력 열 개수로, 양의 스칼라로 지정됩니다. 필요한 경우 d의 2진수 표현은 추가 0으로 채워집니다.
데이터형: double | single
MSB 플래그로, 'right-msb' 또는 'left-msb'로 지정됩니다.
'right-msb'–– 이진 출력값b의 오른쪽(또는 마지막) 열을 최상위 비트(또는 최상위 자릿수)로 지정합니다.'left-msb'–– 이진 출력값b의 왼쪽(또는 첫 번째) 열을 최상위 비트(또는 최상위 자릿수)로 지정합니다.
데이터형: char | string
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
버전 내역
R2006a 이전에 개발됨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 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)