This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

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)吗

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

  • 1. 浮点型MCU不需要IQmath.

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

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

    ERIC

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

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