文章目录
变量定标 (Q15、Q31)
1、数字控制软件中的数值主要分为
定
点
数
\color{red}{定点数}
定点数和
浮
点
数
\color{red}{浮点数}
浮点数两种类型,先前的微控制器仅支持定点运算,随着半导体技术的发展,越来越多的微控制器开始支持浮点运算,但是定点运算依然是目前的主流。
2、定点运算中的操作数均为整型数或纯小数,但是实际应用算法中不可避免地存在小数,为此需要采用整数定标的方法来表示小数,通常采用 Q 格式表示,即整数与小数的区别在于小数点的位置。
3、对于一个 N 比特位的有符号二进制补码数据,可以将其看作Qx.y格式的小数,x表示整数部分的位数,y表示小数部分的位数,y=N-x,其格式如下:
其中,S为符号位,I是整数部分,f是小数部分,其表示的数值大小为
即Qx.y代表的数值为 D/2^y D为该补码数据本身的值。
反之,值为m的小数按Qx.y格式定标的二进制补码数值为m·2^y。
例如,小数0.25用Q1.15表示则为0x2000,0x6000对应的Q1.15格式的小数为0.75。这样就简单地实现了用整数格式来表示小数。
当y=0时即表示整数,没有小数部分,此时 N 比特位补码数据数值 D 的范围为
当x=1时,整数位只有一位,即符号位,其表示的纯小数数值SF 的范围为
对于字型和长字型变量,
其表示最小负数-1.0的数据分别为0x8000 和0x80000000,
字型变量可以表示的最大正数是1.0-2^(-15),对应数据为Ox7FFF,
长字型变量可以表示的最大正数是1.0-2^(-31),对应的数据为0x7FFFFFFF。
同一个二进制补码,如0x4000,当为Q1.15格式小数时,其数值大小为0.5,当为带符号整数时,其数值大小为16384,因此控制软件中参数要如何解释。
文章来源于 NXP 的书籍