本帖最后由 JerryWu75 于 2016-11-18 10:26 编辑
Q格式是一种在只有整形变量的MCU中表示浮点数的方式,Q15表示将原浮点数放大2的15次方, Q10表示将原浮点数放大2的10次方.Q15格式的整形数=2^15 X 原浮点数.
事实上将浮点数放大10的倍数,也能成功表示浮点数,例如将0.1放大10倍变成1,那么在程序中1就可以表示0.1
但是用10的倍数的话,在MCU中需要用到大量的乘法和除法,会导致效率的降低.所以目前一般在整形的MCU中,使用2的n次方的倍数来表示浮点数,这样的话,只需要将原数进行左右位移就可以,例如将0.1表达为Q15,只需要将0.1向左移动15位就可以, 而将Q10的1024还原为浮点数,只需要将其向右移动10位, 这样MCU处理起来就非常方便,也提高了效率.
|