Main Content

swapbytes

바이트 순서 맞바꾸기

설명

예제

Y = swapbytes(X)는 배열 X에 있는 각 요소의 바이트 순서를 리틀 엔디안에서 빅 엔디안으로(또는 그 반대로) 맞바꿉니다. 입력 배열은 희소 형식이 아니어야 하고 그 요소는 복소수가 아니고 숫자여야 합니다.

예제

모두 축소

스칼라 32비트 값에 대한 바이트 순서를 맞바꿉니다. 16진수 표현을 사용하여 리틀 엔디안에서 빅 엔디안으로의 변환을 표시합니다.

X = uint32(hex2dec('4D3C2B1A'));
Y = dec2hex(swapbytes(X))
Y = 
'1A2B3C4D'

R2019b부터는 0x 또는 0X 접두사를 사용하여 16진수 값을 리터럴로 쓸 수도 있습니다(자세한 내용은 16진수 값과 2진수 값 참조). 숫자 X를 16진수 리터럴로 지정합니다. 바이트 순서를 맞바꿉니다.

X = 0x4D3C2B1A;
Y = dec2hex(swapbytes(X))
Y = 
'1A2B3C4D'

1×4 벡터의 각 요소에 대해 바이트 순서를 맞바꿉니다.

format short
X = uint16([0 1 128 65535])
X = 1x4 uint16 row vector

       0       1     128   65535

Y = swapbytes(X)
Y = 1x4 uint16 row vector

       0     256   32768   65535

16진수 표기법의 출력값을 검토하여 엔디언 변환을 표시합니다.

format hex
X
X = 1x4 uint16 row vector

   0000   0001   0080   ffff

Y
Y = 1x4 uint16 row vector

   0000   0100   8000   ffff

16비트 정수로 구성된 3차원 배열 A를 만듭니다. 각 요소의 바이트 순서를 맞바꿉니다. 16진수 표현을 사용하여 엔디언 변환을 표시합니다.

format hex
X = uint16(magic(3)*150);
X(:,:,2) = X*40;
X
X = 3x3x2 uint16 array
X(:,:,1) =

   04b0   0096   0384
   01c2   02ee   041a
   0258   0546   012c


X(:,:,2) =

   bb80   1770   8ca0
   4650   7530   a410
   5dc0   d2f0   2ee0

Y = swapbytes(X)
Y = 3x3x2 uint16 array
Y(:,:,1) =

   b004   9600   8403
   c201   ee02   1a04
   5802   4605   2c01


Y(:,:,2) =

   80bb   7017   a08c
   5046   3075   10a4
   c05d   f0d2   e02e

입력 인수

모두 축소

숫자형 값으로, 스칼라, 벡터, 행렬 또는 다차원 배열로 지정됩니다. X가 스칼라 값이 아니면 swapbytes 연산은 요소별로 수행됩니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

세부 정보

모두 축소

리틀 엔디안을 빅 엔디안으로 변환하기

컴퓨터 시스템은 데이터를 바이트별로 저장합니다. 숫자형 값을 컴퓨터 메모리에 저장하는 방법은 리틀 엔디안과 빅 엔디안 두 가지 방법이 있습니다. 리틀 엔디안 방식에서는 바이트가 왼쪽에서 오른쪽 방향으로 작성되며 점점 유의성이 증가합니다. 빅 엔디언 방식에서는 바이트가 왼쪽에서 오른쪽 방향으로 작성되며 점점 유의성이 감소합니다. swapbytes 함수는 메모리의 바이트 순서를 맞바꾸어 리틀 엔디안에서 빅 엔디안으로(또는 그 반대로) 변환합니다.

다음 그림은 32비트(4바이트) 16진수 4D3C2B1A에 대한 변환을 보여줍니다. 16진수 표기법에서, 1바이트는 2자리 숫자로 표현됩니다. 리틀 엔디안 그림의 각 상자는 데이터의 1바이트(4D, 3C, 2B 및 1A)를 나타냅니다. swapbytes 함수는 이 상자 또는 바이트의 순서를 맞바꿉니다.

(4D, 3C, 2B, 1A) in little endian becomes (1A, 2B, 3C, 4D) in big endian.

확장 기능

버전 내역

R2006a 이전에 개발됨

참고 항목