主要内容

定型

转换数据类型而不改变底层数据

描述

例子

Y=定型(X类型的位模式转换X属性指定的数据类型类型不改变底层数据。X必须是完整的、非复杂的数字标量或向量。

例子

全部折叠

将一个整数转换为具有相同存储大小的无符号整数。

X = int16(-1)
X =int16-1
Y =类型转换(X,“uint16”
Y =uint1665535

以十六进制形式显示位模式。使用转换数据类型定型不更改底层数据。

格式十六进制X
X =int16飞行符
Y =类型转换(X,“uint16”
Y =uint16飞行符

创建一个8位整数的1乘4向量。

X = int8([77 60 43 26])
X =1x4 int8行向量77 60 43 26

将四个使用4字节(32位)存储的8位整数转换为同样使用4字节存储的单精度数字。

Y =类型转换(X,“单一”
Y =3.5411 e-23

以十六进制形式显示位模式。在十六进制表示法中,1字节(8位)由两位数字表示。的定型函数在不修改数据的情况下重新排列位模式。

格式十六进制X
X =1x4 int8行向量2b 2b 1a
Y =类型转换(X,“单一”
Y =1 a2b3c4d

创建一个1乘3的32位无符号整数向量。

X = uint32([1 255 256])
X =1x3 uint32行向量1 255 256

X转换成8位无符号整数定型.每个32位的值被分成4个8位的段。在小端序系统上运行这段代码会产生以下结果。

Y =类型转换(X,“uint8”
Y =1x12 uint8行向量1 0 0 0 255 0 0 0 0 1 0 0

的第三个要素X, 256,超过了8位所能容纳的最大值。Y(9)中的转换值因此溢出到Y(10)。

Y (9:12)
ans =1x4 uint8行向量0 1 0 0

你可以转换Y返回32位无符号整数,而不改变底层数据。

X2 =类型转换(Y,“uint32”
X2 =1x3 uint32行向量1 255 256

比较输出定型的输出看看这两个函数的区别。

Z = cast(X,“uint8”
Z =1x3 uint8行向量1 255 255
X2 = cast(Z,“uint32”
X2 =1x3 uint32行向量1 255 255

从较小的数据类型(uint8)变成更大的(uint16).使用十六进制表示来显示位模式的重排。的定型函数以小端序方式返回输出,将输入数据的四个8位段组合为两个16位段。

格式十六进制X = uint8([44 55 66 77])
X =1x4 uint8行向量2c 37 42 4d
Y =类型转换(X,“uint16”
Y =1x2 uint16行向量372 c 4 d42

方法可以将小端序输出转换为大端序输出(反之亦然)swapbytes函数。

Y = swapbytes(类型转换(X,“uint16”))
Y =1x2 uint16行向量424 c37 d

输入参数

全部折叠

输入数组,指定为标量或向量。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

新的数据类型,指定为“单一”“双”“int8”“int16”“int32”“int64”“uint8”“uint16”“uint32”,或“uint64”

的位大小类型n的每个元素的比特大小的倍X,然后X必须包含倍数n要转换的元素X到数据类型类型.否则,MATLAB®抛出错误。

提示

  • 定型和MATLAB有什么不同函数,因为它不会改变输入数据。定型总是在输出中返回相同的字节数Y在输入中X.例如,将16位整数1000转换为uint8定型返回两个8位段(3和232)中的完整16位,从而保持原始值(3*256 + 232 = 1000)。的函数将输入值截断为255。

  • 的格式定型根据所使用的系统,输出可能不同。一些计算机系统从最低有效字节开始存储数据低位优先),而其他的则从最有效的字节(称为大端法).您可以使用swapbytes函数将字节顺序从小端序反转为大端序(反之亦然)。

扩展功能

版本历史

R2006a之前介绍

另请参阅

||

Baidu
map