查看单个帖子
旧 2008-06-25, 20:42   #1
jasonzou
初级会员
 
注册日期: 2008-06-25
年龄: 42
帖子: 7
声望力: 0
jasonzou 正向着好的方向发展
默认 [求助]问个关于小数转换为IEEE标准的浮点数的问题

不知道如何实现。
我尝试用了先量化我的浮点的数据位和符号位,后用num2bin函数来转
代码如下:
a=quantizer([32 31]);
num2bin(a,1.5)
可是它报告我的结果溢出了,输出的为
Warning: 1 overflow.
> In embedded.quantizer.quantize at 68
In embedded.quantizer.num2bin at 52

ans =

01111111111111111111111111111111
根据IEEE单精度浮点的定义:1位符号位,8位指数,23位尾数
1.5对应的值应该是
0 01111111 10000000000000000000000
同样的我尝试对0.5转换成
num2bin(a,0.5)
ans =00111111111111111111111111111110
可是正确的0.5应该是0 01111110 00000000000000000000000
matlab里那个float我只能拿来定义数据类型,当我一用赋值后,数据类型又换了
下面是帮助文档里的关于float函数的定义
float('single') returns a MATLAB structure that describes the data type of an IEEE single (32 total bits, 8 exponent bits)
请教下如何在matlab里把小数转换为浮点....
jasonzou 当前离线   回复时引用此帖