TI中文支持网
TI专业的中文技术问题搜集分享网站

IQmath中的IQ格式和浮点型数据之间的转化及数据精度问题

1、IQ格式的数据是使用IQ(n)中的n位来表示小数数据,对于32位单片机,(32-n-1)的位数来表示整型数据,问题1:对于浮点型单片机是不是可以不使用IQ格式的转化?

2、IQ格式的数据应该是左右对称的,即表示的最大值和最小值应该是一样的,但是我查看IQmath的使用手册发现,例如IQ(24),最大值和最小值并不相等,我不理解,按照我的想法,第31位(最高位)是符号位,24~30这7位表示整型,0~23表示小数,怎么会出现-128呢?

3、浮点型数据向IQ格式的转化是怎样实现的呢,大家能够给举个例子吗,例如将3.1415转化为IQ(29);反过来将IQ(24)格式下的1.5,怎样转化为浮点型数据是乘以1.5*(1/2^24)吗

问题有点多,请大家见谅!

Eric Ma:

1. 浮点型MCU不需要IQmath.

2. 第31位(最高位)是符号位,24~30这7位表示整型,0~23表示小数,你为什么有这个想法?IQmath纯粹是将浮点数进行左移用整形数去除以左移多少位,就是精度。

3. 将3.14159左移29位,编程一个整型数,反之亦然。

ERIC

1、IQ格式的数据是使用IQ(n)中的n位来表示小数数据,对于32位单片机,(32-n-1)的位数来表示整型数据,问题1:对于浮点型单片机是不是可以不使用IQ格式的转化?

2、IQ格式的数据应该是左右对称的,即表示的最大值和最小值应该是一样的,但是我查看IQmath的使用手册发现,例如IQ(24),最大值和最小值并不相等,我不理解,按照我的想法,第31位(最高位)是符号位,24~30这7位表示整型,0~23表示小数,怎么会出现-128呢?

3、浮点型数据向IQ格式的转化是怎样实现的呢,大家能够给举个例子吗,例如将3.1415转化为IQ(29);反过来将IQ(24)格式下的1.5,怎样转化为浮点型数据是乘以1.5*(1/2^24)吗

问题有点多,请大家见谅!

rookiecalf:

回复 Eric Ma:

2、IQ格式的数据应该是左右对称的,即表示的最大值和最小值应该是一样的,但是我查看IQmath的使用手册发现,例如IQ(24),最大值和最小值并不相等,我不理解,按照我的想法,第31位(最高位)是符号位,24~30这7位表示整型,0~23表示小数,怎么会出现-128呢?

如果对称的话,就会有正0和负0了,而实际中只有一个0,而负0就是多出来的那个负最大值了

赞(0)
未经允许不得转载:TI中文支持网 » IQmath中的IQ格式和浮点型数据之间的转化及数据精度问题
分享到: 更多 (0)