定点数

1、定点数定义

定点数是指小数点固定的隐含在某一位置上的一类数据

有符号数:

以四位有符号数1111为例,其数值大小为:1x(-2^(0))(4+2+1)= -7。

2、补码

正整数的补码:与原码相同。

负整数的补码:将其原码除符号位外的所有位取反,之后加1。

3、定点纯小数

定点纯小数是指整数部分为0的定点小数,分为有符号定点纯小数和无符号定点纯小数,S为符号位,小数点在小数位的最左侧。

对于字长为wf的无符号定点小数,其数值可表示为:

Bi表示对应的位为1,以四位无符号定点纯小数1001为例:

其值为value=b0 x 2^(0-4) +b3 x 2^(3-4) =0.0625+0.5=0.5625

对于字长为wf+1的有符号定点纯小数,其数值表示为:

同样以1001为例,字长为4,wf=3,符号位为1,尾数位001,其值表示为:

value= (-1)^(1) + 2^(0-3) =-1+0.125 = -0.875

4、定点带小数

即整数部分不为0的小数,分为有符号定点带小数额无符号定点带小数,S为符号位,定点数位宽为w,小数位位宽为wf:

对于无符号定点带小数,正常计算即可,其计算公式为:

对于有符号定点带小数,其计算公式为:

5、定点数据的上溢和下溢

上溢(overflow):运算结果超出了定点数的整数部分所能表示的范围,

下溢(underflow):运算结果小数部分超出了小数部分能表示的范围。

UFIX_4_2,表示无符号型定点小数,全长为4,小数部分宽度为2,所能表示的范围为:[0,3.75],精度为0.25,如果运算结果为4,即发生上溢,如果运算结果为0.125,则发生下溢。

6、浮点数和定点数的比较

与定点数相比,采用浮点数进行算法描述:

(1)、具有更宽的动态范围。

(2)、可缩短复杂运算的开发周期。

(3)、统一的标准数据格式。

劣势:

(1)、浮点运算会消耗更多的查找表、寄存器和乘法器。

(2)、浮点运算会给布线资源带来压力,导致最大运行频率降低。

通常在算法建模时采用浮点数,而在FPGA实现时采用定点数。

原文地址:https://www.cnblogs.com/luxinshuo/p/13554062.html