主要内容

swapbytes

交换字节顺序

说明

Y = swapbytes(X) 将数组 X 中每个元素的字节排序从 little endian 转换为 big endian(或相反)。输入数组的所有元素必须是完整的非复数数值元素。

示例

示例

全部折叠

将字节顺序转换为标量 32 位值。使用十六进制表示来显示从 little endian 到 big endian 的转换。

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

从 R2019b 开始,您还可以使用 0x0X 前缀指定十六进制字面值(有关详细信息,请参阅十六进制和二进制值)。将数 X 指定为十六进制字面值。交换字节顺序。

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

交换 1×4 向量的每个元素的字节顺序。

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

       0       1     128   65535

Y = swapbytes(X)
Y = 1×4 uint16 row vector

       0     256   32768   65535

检查采用十六进制记数法的输出是否显示了 endian 转换。

format hex
X
X = 1×4 uint16 row vector

   0000   0001   0080   ffff

Y
Y = 1×4 uint16 row vector

   0000   0100   8000   ffff

创建包含 16 位整数的三维数组 A。交换每个元素的字节顺序。使用十六进制表示来显示 endian 转换。

format hex
X = uint16(magic(3)*150);
X(:,:,2) = X*40;
X
X = 3×3×2 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 = 3×3×2 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

详细信息

全部折叠

扩展功能

全部展开

版本历史记录

在 R2006a 之前推出

另请参阅