【转】定点数和浮点数区别

来源:互联网 发布:淘宝天猫双十一销售额 编辑:程序博客网 时间:2024/06/09 23:47
计算机中的数除了整数之外,还有小数。如何确定小数点的位置呢?通常有两种方法:
一种是规定小数点位置固定不变,称为定点数。另一种是小数点的位置不固定,可以浮动,称为浮点数。
在计算机中,通常是用定点数来表示整数和纯小数,分别称为定点整数和定点小数。对于既有整数部分、又有小数部分的数,一般用浮点数表示。下面分别予以介绍:
  1. 定点整数:在定点数中,当小数点的位置固定在数值位最低位的右边时,就表示一个整数。请注意:小数点并不单独占1个二进制位,而是默认在最低位的右边。定点整数又分为有符号数和无符号数两类。
  2. 定点小数:当小数点的位置固定在符号位与最高数值位之间时,就表示一个纯小数。因为定点数所能表示数的范围较小,常常不能满足实际问题的需要,所以要采用能表示数的范围更大的浮点数。
  3. 浮点数:在浮点数表示法中,小数点的位置是可以浮动的。在大多数计算机中,都把尾数S定为二进制纯小数,把阶码P定为二进制定点整数。尾数S的二进制位数决定了所表示数的精度;阶码P的二进制位决定了所能表示的数的范围。为了使所表示的浮点数既精度高、又范围大,就必须合理规定浮点数的存储格式。


双精度浮点数和单精度浮点数
这两者主要在精度上有区别。
  • 双精度浮点数能精确表示 -1.79769313486231570E+308 到 -4.94065645841246544E-324 范围的负数和从 4.94065645841246544E-324 到 1.79769313486231570E+308 范围的正数。
  • 单精度浮点数能够精确表示从 -3.4028235E+38 到 -1.401298E-45 的负数和从 1.401298E-45 到 3.4028235E+38 的正数。
单精度浮点数的精度没有双精度那么高,但是所需内存少,运算速度快。

提示
  • 如果对精度要求不高,则应该尽量避免使用双精度浮点数,而应该使用单精度浮点数。这一点在一些大型应用程序中非常重要。如果在定义变量时,单精度浮点数就足够了,但是却使用了双精度浮点数,会大大减慢程序的运行。
  • 如果某个变量只需要整数类型就足够了,应避免用浮点数。因为整数的运算速度更快。

转自:http://www.fundfund.cn/news_200833_29906.htm
还可以参考:http://www.cnblogs.com/cloudseawang/archive/2007/02/06/641652.html