Matlab中typecast函数由int8转换为int32

typecast函数

在不更改基础数据的情况下转换数据类型

语法

Y = typecast(X, type)

说明

Y = typecast(X, type) 将 X 中的数值转换为 type 指定的数据类型。输入 X 必须是完整的非复数数值标量或向量。type 输入是设置为以下项之一的字符串:'uint8''int8''uint16''int16''uint32''int32''uint64''int64''single' 或 'double'

typecast 与 MATLAB cast 函数的区别在于,它不会更改输入数据。typecast 在输出 Y 中返回的字节数始终与输入 X 中的字节数相同。例如,使用 typecast 将 16 位整数 1000 转换为 uint8 会以两个 8 位段(3 和 232)的形式返回完整的 16 位,从而保持其原始值 (3*256 + 232 = 1000)。而 cast 函数将此输入值截断为 255。

根据所用系统,typecast 的输出格式可能会有所不同。某些计算机系统从数据的最高有效字节开始存储数据(称为 big-endian 排序),而其他计算机系统从最低有效字节开始存储数据(称为 little-endian 排序)。

注意

如果 X 包含的值少于生成输出值所需的值,MATLAB 会发出错误。

int8转换为int32类型

此示例尝试根据三个 8 位值的向量生成一个 32 位值。由于输入中的字节数不足,因此 MATLAB 会发出错误:

format hex
typecast(uint8([120 86 52]), 'uint32')

Error using typecast
Too few input values to make output type.

使用四个 8 位值的向量重复此示例,该示例将返回预期结果:

typecast(uint8([120 86 52 18]), 'uint32')
ans =
   12345678

如上图所示可以看出这个函数等于高位*2^24+中间*2^16+中间*2*8+低位2^0实现了int8到int32的转换

其他的详细用法:https://ww2.mathworks.cn/help/matlab/ref/typecast.html

扫描二维码关注公众号,回复: 8540809 查看本文章

可以点击上面链接进官网看

发布了27 篇原创文章 · 获赞 6 · 访问量 5078

猜你喜欢

转载自blog.csdn.net/qq_21449473/article/details/102562863