swapbytes
バイト順の交換
説明
例
スカラーのバイト順の入れ替え
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
3 次元配列のバイト順の入れ替え
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
— 数値
スカラー | ベクトル | 行列 | 多次元配列
数値。スカラー、ベクトル、行列または多次元配列として指定します。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
は、これらのボックス、すなわちバイト順を入れ替えます。
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
この関数は tall 配列を完全にサポートしています。詳細については、tall 配列を参照してください。
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
MATLAB Function ブロック内の swapbytes
に対する入力のクラスの継承は、入力のクラスが double
の場合のみサポートされています。double 以外の入力については、入力端子のデータ型は継承するのではなく、指定しなければなりません。
GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。
使用上の注意事項および制限事項:
MATLAB Function ブロック内の swapbytes
に対する入力のクラスの継承は、入力のクラスが double
の場合のみサポートされています。double 以外の入力については、入力端子のデータ型は継承するのではなく、指定しなければなりません。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
この関数は GPU 配列を完全にサポートしています。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
分散配列
Parallel Computing Toolbox™ を使用して、クラスターの結合メモリ上で大きなアレイを分割します。
この関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入
参考
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)