matlab 如何将十六进制数转换为float型

如何将32位的十六进制数(比如0x3E4F1234)转换为单精度浮点制的数?

如果是正数直接使用dec2hex函数。如果是负数,将其转换为反码再用dec2hex。

例:a=[-1 10 17 -10 9],需转换为一个字节的十六进制表达。
需将其中的负数转换为相应的反码,n = n + 256
使用 a(find(a<0))=a(find(a<0))+256
得到
a =

255 10 17 246 9
再用

dec2hex(a)

得到
ans =

FF
0A
11
F6
09
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-06-03
可以考虑使用这个公式:
b = typecast(uint32(hex2dec(a)),'single')
第2个回答  2014-06-21
single(hex2dec())

先把16进制转成double型,然后再用single转成float型。追问

我试过,不对。

追答

你用single(hex2dec('3E4F1234'))

第3个回答  2014-06-21
single(A)
相似回答