浮点数和定点数的概念有什么不同?
定点和浮点的区别:
1、定义区别:
(1)定点运算中,程序员必须时刻关注溢出的发生,为了防止溢出,要么不断进行移位定标,要么做截尾。定点表示具体的数。
(2)前者耗费大量时间和空间,后者则带来精度的损失。相反,浮点运算dsp扩大了动态范围,提高了精度,节省了运算时间和存储空间,因为大大减少了定标,移位和溢出检查。浮点无法精确表达需要取舍。
2、应用区别:
(1)硬件:浮点dsp处理器具有浮点/整数乘法器,整数/浮点算术逻辑运算单元ALU,适合存放扩展精度的浮点结果的寄存器等。
(2)软件:主要有浮点dsp编程的特点以及注意事项;定点dsp进行浮点运算时的定标,移位,检测溢出操作。即使比较两个相同的数,还是可能有微小的舍入差别。
浮点数的溢出处理:
1、浮点数的溢出是以其阶码溢出表现出来的。在加或减运算过程中要检查是否产生了溢出,若阶码正常,加(减)运算正常结束;若阶码溢出,则要进行相应处理。另外对尾数的溢出也需要处理。
2、阶码上溢,超过了阶码可能表示的最大值的正指数值,一般将其认为是+∞和-∞。
3、阶码下溢,超过了阶码可能表示的最小值的负指数值,一般将其认为是0。
4、尾数上溢,两个同符号尾数相加产生了最高位向上的进位,将尾数右移,阶码增1来重新对齐。
5、尾数下溢,在将尾数右移时,尾数的最低有效位从尾数域右端流出,要进行舍入处理。
以上内容参考:百度百科-定点数
以上内容参考:百度百科-浮点数