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

詳細

すべて折りたたむ

リトル エンディアンからビッグ エンディアンへの変換

コンピューター システムは、複数バイトからなる断片でデータを格納します。数値をコンピューター メモリに格納するには、リトル エンディアンとビッグ エンディアンの 2 つの方法があります。リトル エンディアン形式では、バイトが下位から上位に向けて左から右に記述されます。ビッグ エンディアン形式では、バイトが上位から下位に向けて左から右に記述されます。関数 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 より前に導入

参考