이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
16진수 값과 2진수 값
숫자를 16진수 값이나 2진수 값으로 표현할 수 있습니다. 일부 컨텍스트에서는 숫자를 이렇게 표현하는 것이 더 편리합니다. 예를 들어, 2진수 값을 사용하여 하드웨어 레지스터의 비트를 표현할 수 있습니다. MATLAB®에는 16진수 값과 2진수 값을 표현할 수 있는 두 가지 방법이 있습니다.
리터럴로 표현. R2019b부터는 적합한 접두사를 표기법으로 사용하여 16진수 값과 2진수 값을 리터럴로 쓸 수 있습니다. 예를 들어,
0x2A
는 42를 지정하는 리터럴입니다. MATLAB은 리터럴을 텍스트가 아니라 숫자로 저장합니다.string형 또는 문자형 벡터로 표현. 예를 들어, 문자형 벡터
'2A'
는 숫자 42를 16진수 값으로 표현합니다. 텍스트를 사용하여 16진수 값 또는 2진수 값을 표현할 때 값을 따옴표로 묶으십시오. MATLAB은 이 표현을 숫자가 아니라 텍스트로 저장합니다.
MATLAB은 숫자를 16진수 표현 및 2진수 표현 간에 변환할 수 있는 몇 가지 함수를 제공합니다.
16진수 표기법과 2진수 표기법을 사용하여 정수 쓰기
16진수 리터럴은 0x
접두사 또는 0X
접두사로 시작하는 반면, 2진수 리터럴은 0b
접두사 또는 0B
접두사로 시작합니다. MATLAB은 이 표기법으로 쓰여진 숫자를 정수로 저장합니다. 예를 들어, 다음 두 리터럴 모두 정수 42
를 나타냅니다.
A = 0x2A
A = uint8
42
B = 0b101010
B = uint8
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진수 리터럴을 써보겠습니다.
A = 0x2As32
A = int32
42
부호 있는 정수형을 지정할 경우 음수를 나타내는 리터럴을 쓸 수 있습니다. 2의 보수 형식으로 음수를 표현하십시오. 예를 들어, s8
접미사를 사용하여 리터럴로 음수를 지정해 보겠습니다.
A = 0xFFs8
A = int8
-1
MATLAB은 이 리터럴을 숫자로 저장하기 때문에 숫자형 배열을 사용하는 어떤 컨텍스트나 함수에서도 사용할 수 있습니다.
16진수 값과 2진수 값을 텍스트로 표현하기
dec2hex
함수와 dec2bin
함수를 사용하여 정수를 16진수 값 또는 2진수 값을 나타내는 문자형 벡터로 변환할 수도 있습니다. 정수를 16진수로 변환합니다.
hexStr = dec2hex(255)
hexStr = 'FF'
정수를 2진수로 변환합니다.
binStr = dec2bin(16)
binStr = '10000'
이 함수는 텍스트를 생성하므로 숫자형 값을 표현하는 텍스트가 필요할 때 사용하십시오. 예를 들어, 제목 또는 플롯 레이블에 이러한 값을 덧붙이거나 16진수 표현 또는 2진수 표현으로 숫자를 저장하는 파일에 이러한 값을 기록할 수 있습니다.
16진수 값으로 구성된 배열을 텍스트로 표현하기
숫자로 구성된 배열을 텍스트로 변환할 때는 compose
함수를 사용하는 것이 좋습니다. 이 함수는 입력 숫자형 배열과 같은 크기를 갖는 string형 배열을 반환합니다. 16진수 형식을 생성하려면 %X
을 형식 지정자로 사용하십시오.
A = [255 16 12 1024 137]
A = 1×5
255 16 12 1024 137
hexStr = compose("%X",A)
hexStr = 1x5 string
"FF" "10" "C" "400" "89"
dec2hex
함수와 dec2bin
함수는 숫자로 구성된 배열을 16진수 값 또는 2진수 값을 나타내는 텍스트로 변환합니다. 이들 함수는 문자형 배열을 반환합니다. 여기서 각 행은 입력 숫자형 배열에 있는 수치를 나타내고 필요에 따라 0으로 채워집니다.
2진수 표현을 16진수 표현으로 변환하기
2진수 값을 16진수 값으로 변환하려면 먼저 2진수 리터럴로 표현한 후 이 리터럴을 16진수 값을 나타내는 텍스트로 변환하십시오. 리터럴은 숫자로 해석되기 때문에 리터럴을 dec2hex
에 대한 입력 인수로 직접 지정할 수 있습니다.
D = 0b1111; hexStr = dec2hex(D)
hexStr = 'F'
16진수 리터럴로 표현한 경우 dec2bin
을 사용하여 이 리터럴을 2진수 값을 나타내는 텍스트로 변환할 수 있습니다.
D = 0x8F; binStr = dec2bin(D)
binStr = '10001111'
2진수 값이 포함된 비트별 연산
일반적으로 2진수 숫자는 비트를 나타낼 때 사용할 수 있습니다. 예를 들어, 많은 장치에는 메모리 내 데이터나 장치 상태를 나타내는 비트 모음에 액세스하기 위한 레지스터가 들어 있습니다. 이러한 하드웨어로 작업할 때 MATLAB의 숫자를 사용하여 레지스터 내의 값을 표현할 수 있습니다. 특정 비트를 나타내고 액세스하려면 2진수 값과 비트별 연산을 사용하십시오.
8비트 레지스터를 나타내는 숫자를 만들어 보겠습니다. 2진수 표현으로 시작하면 편리하지만 숫자가 정수로 저장됩니다.
register = 0b10010110
register = uint8
150
특정 비트의 값을 가져오거나 설정하려면 비트별 연산을 사용하십시오. 예를 들어, bitand
함수와 bitshift
함수를 사용하여 5번째 비트의 값을 가져오겠습니다. (MATLAB이 0
또는 1
을 반환하도록 해당 비트를 첫 번째 위치로 이동합니다. 이 예제에서 5번째 비트는 1
입니다.)
b5 = bitand(register,0b10000); b5 = bitshift(b5,-4)
b5 = uint8
1
5번째 비트를 0
으로 뒤집으려면 bitset
함수를 사용하십시오.
register = bitset(register,5,0)
register = uint8
134
register
는 정수이므로 dec2bin
함수를 사용하여 모든 비트를 2진수 형식으로 표시합니다. binStr
은 문자형 벡터이고 선행 0b
접두사 없이 2진수 값을 나타냅니다.
binStr = dec2bin(register)
binStr = '10000110'
참고 항목
bin2dec
| bitand
| bitshift
| bitset
| dec2bin
| dec2hex
| hex2dec
| sprintf
| sscanf