숫자를 16진수 값이나 2진수 값으로 표현할 수 있습니다.
일부 컨텍스트에서는 숫자를 이렇게 표현하는 것이 더 편리합니다.
예를 들어, 2진수 값을 사용하여 하드웨어 레지스터의 비트를 표현할 수 있습니다.
MATLAB에서는 16진수 값과 2진수 값을 표현할 수 있는 두 가지 방법이 있습니다.
1) 리터럴로 표현
적합한 접두사를 표기법으로 사용하여 16진수 값과 2진수 값을 리터럴로 쓸 수 있습니다.
예를 들어, 0x2A는 42를 지정하는 리터럴입니다.
MATLAB은 리터럴을 텍스트가 아니라 숫자로 저장합니다.
2) string형/문자형 벡터로 표현
문자형 벡터 '2A'는 숫자 42를 16진수 값으로 표현합니다.
텍스트를 사용하여 16진수 값 또는 2진수 값을 표현할 때 값을 따옴표로 묶으십시오.
MATLAB은 이 표현을 숫자가 아니라 텍스트로 저장합니다.
MATLAB은 숫자를 16진수 표현 및 2진수 표현 간에 변환할 수 있는 몇 가지 함수를 제공합니다.
1) 16진수 표기법과 2진수 표기법을 사용하여 정수 쓰기
16진수 리터럴은 0x / 0X 접두사로 시작하는 반면, 2진수 리터럴은 0b / 0B 접두사로 시작합니다.
MATLAB은 이 표기법으로 쓰여진 숫자를 정수로 저장합니다. 예를 들어, 다음 두 리터럴 모두 정수 42를 나타냅니다,
이 표기법을 사용하여 숫자를 쓸 때 따옴표를 사용하지 마십시오.
16진수 숫자를 표현하려면 0-9, A-F 및 a-f를 사용하십시오.
2진수 숫자를 표현하려면 0과 1을 사용하십시오.
기본적으로 MATLAB은 숫자를 수용할 수 있는 가장 작은 부호 없는 정수형으로 해당 숫자를 저장합니다.
그러나 선택적 접미사를 사용하여 값을 저장하는 정수형을 지정할 수 있습니다.
* 부호 없는 8/16/32/64비트 정수형을 지정하려면 접미사 u8/u16/u32/u64를 사용하십시오.
* 부호 있는 8/16/32/64비트 정수형을 지정하려면 접미사 s8/s16/s32/s64를 사용하십시오.
예를 들어, 부호 있는 32비트 정수로 저장할 16진수 리터럴을 써보겠습니다.
부호 있는 정수형을 지정할 경우 음수를 나타내는 리터럴을 쓸 수 있습니다.
2의 보수 형식으로 음수를 표현하십시오. 예를 들어, s8 접미사를 사용하여 리터럴로 음수를 지정해 보겠습니다.
MATLAB은 이 리터럴을 숫자로 저장하기 때문에 숫자형 배열을 사용하는 어떤 컨텍스트나 함수에서도
이를 사용할 수 있습니다.
예를 들어, 큰 정수에 대한 정밀도 손실 없이 64비트의 부호 있는 정수형 배열을 만들 수 있습니다.
비교를 위해 int64를 사용하여 큰 정수(flintmax 보다 큼) 로 구성된 배열을 변환할 경우
MATLAB은 처음에는 기본적으로 숫자형 배열 입력값을 배정밀도로 나타내기 때문에
정밀도가 손실될 수 있습니다.
2) 16진수 값과 2진수 값을 텍스트로 표현하기
dec2hex 함수와 dec2bin 함수를 사용하여 정수를 16진수/2진수 값을 나타내는 문자형 벡터로 변환할 수 있습니다.
정수를 16진수로 변환합니다.
정수를 2진수로 변환합니다.
이 함수는 텍스트를 생성하므로 숫자형 값을 표현하는 텍스트가 필요할 때 사용하십시오.
예를 들어, 제목 또는 플롯 레이블에 이러한 값을 덧붙이거나 16진수/2진수 표현으로 숫자를 저장하는 파일에
이러한 값을 기록할 수 있습니다.
3) 16진수 값으로 구성된 배열을 텍스트로 표현하기
숫자로 구성된 배열을 텍스트로 변환할 때는 compose 함수를 사용하는 것이 좋습니다.
이 함수는 입력 숫자형 배열과 같은 크기를 갖는 string형 배열을 반환합니다.
16진수 형식을 생성하려면 %x을 형식 지정자로 사용하십시오.
dec2hex 함수와 dec2bin 함수는 숫자로 구성된 배열을 16진수/2진수 값을 나타내는 텍스트로 변환합니다.
여기서 각 행은 입력 숫자형 배열에 있는 수치를 나타내고 필요에 따라 0으로 채워집니다.
4) 2진수 표현을 16진수 표현으로 변환하기
2진수 값을 16진수 값으로 변환하려면 먼저 2진수 리터럴로 표현한 후
이 리터럴을 16진수 값을 나타내는 텍스트로 변환하십시오.
리터럴은 숫자로 해석되기 때문에 리터럴을 dec2hex에 대한 입력 인수로 직접 지정할 수 있습니다.
16진수 리터럴로 표현한 경우 dec2bin을 사용하여 이 리터럴을 2진수 값을 나타내는 텍스트로 변환할 수 있습니다.
5) 2진수 값이 포함된 비트별 연산
일반적으로 2진수 숫자는 비트를 나타낼 때 사용할 수 있습니다.
예를 들어, 많은 장치에는 메모리 내 데이터나 장치 상태를 나타내는 비트 모음에 액세스하기 위한 레지스터가
들어있습니다.
이러한 하드웨어로 작업할 때 MATLAB의 숫자를 사용하여 레지스터 내의 값을 표현할 수 있습니다.
특정 비트를 나타내고 액세스하려면 2진수 값과 비트별 연산을 사용하십시오.
8비트 레지스터를 나타내는 숫자를 만들어 보겠습니다. 2진수 표현으로 시작하면 편리하지만 숫자가 정수로 저장됩니다.
특정 비트의 값을 가져오거나 설정하려면 비트별 연산을 사용하십시오.
예를 들어, bitand함수와 bitshift함수를 사용하여 5번째 비트의 값을 가져오겠습니다.
(MATLAB이 0 또는 1을 반환하도록 해당 비트를 첫 번째 위치로 시프트합니다. 이 예제에서 5번째 비트는 1입니다.)
5번째 비트를 0으로 뒤집으려면 bitset함수를 사용하십시오.
register는 정수이므로 dec2bin 함수를 사용하여 모든 비트를 2진수 형식으로 표시합니다.
binstr는 문자형 벡터이고 선행 0b 접두사 없이 2진수 값을 나타냅니다.
https://kr.mathworks.com/help/matlab/matlab_prog/specify-hexadecimal-and-binary-numbers.html
16진수 값과 2진수 값 - MATLAB & Simulink - MathWorks 한국
이 예제의 수정된 버전이 있습니다. 사용자가 편집한 내용을 반영하여 이 예제를 여시겠습니까?
kr.mathworks.com