采用资料:《安富莱STM32第二版DSP数字信号处理教程》
定点数:
定义:小数点位置事先约定,不在改变。定点数可分为定点整数和定点小数两种。
定点小数用来表示纯小数,例如:0.3,-0.25,0.875等,并约定小数点在符号位和数值位之间。以0.875为例,其二进制表达式为0.875(D)-->0.111(B),又因为该数为整数则在计算机存储方式为01110000(注意后补0凑够8位),同理-0.875二进制存储方式为11110000。
定点整数用来表示整数,例如12,30,-45等。以30为例其二进制为30(D)-->11110(B),因为该数为正数符号位为0,则在计算机存储方式为00011110(注意前补0凑够8位),同理-30二进制存储方式为00111110。
浮点数:
定义:小数点位置可变
浮点数用科学计数法来表达实数,即尾数(Mantissa),基数(Base),指数(Exponent)以及正负符号表达实数。
IEEE浮点数:单精度(32位) 双精度(64位)
浮点数将特定长度的连续字节二进制位分为特定宽度符号域,指数域,尾数域
IEEE单精度浮点数:符号(1bit) 指数(8bit) 尾数(23bit)
IEEE双精度浮点数:符号(1bit) 指数(11bit) 尾数(52bit)
符号域:0表示数值为正数,1表示数值位负数
指数域:以单精度浮点数为例,指数为8bit,表示0~255之间数值。
指数可以表达为正数也可表达为负数,单精度的指数0在指数域中保存为127,127表示的是偏移量,指数域中的64表达的指数为-63(-63+127 = 64)。
尾数域:IEEE标准要求浮点数必须是规范的,以112.5(D)=1110000.1(B) 二进制科学计数法表示为1.1100001 * 10^6。按照IEEE标准尾数的小数点左侧必须为1,这个1是固定可以隐藏,实际保存在尾数域的值为11000010000000000000000。