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

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

 

 

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值