0. 小数在计算机中的存储

两种方法:

  • 定点
  • 浮点

1. 定点数

顾名思义,小数点的位置固定的。

也就是说,用固定数量bit存储整数部分,也用固定数量bit存储小数部分,另外再用一个bit存储符号位。

计算时,将三个部分拼接起来,加个小数点即可。

优点:小数点位置固定,方便计算。
缺点:表示输的范围受限。

2. 浮点数

浮点数在计算机中的存储依赖科学计数法。

2.1 科学计数法

十进制中,3145使用科学计数法可以表示成 3.145 * 103
科学计数法一般的表达形式:M * baseE,其中 M 暂且称他为尾数,必须要 >= 1 且 < basebase是进制,10进制就是10,2进制就是2;E是指数。

任意一个二进制浮点数可以表示成: V = (-1)s x M x 2E

2.2 浮点数的存储

综上,若想在计算机中存储一个浮点数,需要保存如下三个数值:

  • 符号位 s,0 或者 1 。
  • 尾数 M ,因为基数M前边说过,必须 >= 1,所以,这个数字1就可以不存了,直接存储后边的小数部分。
  • 指数E

IEEE 754中规定,32bit的浮点数中(64bit同理),最高 1 bit是符号位,紧接着的 8 bit 存储指数 E,最后的 23 个bit存储尾数 M。

此外,还有一些特殊规定:

2.3 浮点数存储及范围的例子