浮点数的表示

在计算机中有两种存储方式:

通常,阶码为补码或移码表示的定点整数,尾数为补码或原码表示的定点小数。

尾数规格化

规格化浮点数,尾数M的值必须满足 1/2 <= M <= 1。

对于原码和补码浮点数规格化后,有如下要求:

需要十分注意的是,补码并不能取到 -1/2.

这是因为,-1/2的补码表示为 11.10...0,为统一格式,便于机器判断,通常不把 -1/2 列入规格化的数, 而 -1 的补码表示为 11.0...0,符合机器数判断标准,故算做规格化的数。

对于二进制浮点数的规格化操作,可类比十进制中的科学计数法操作。

由于在机器中,二进制数一般以补码存储,故下面讨论补码的规格化:

eg. 设某机器用32位表示一个实数,阶码部分8位(含1位阶符),用定点整数补码表示;尾数部分24位(含数符1位),用规格化定点小数补码表示,基数为2。

浮点数的表示范围

浮点数的溢出

IEEE754标准

具体来说,需要符合以下标准:

下面来看几个例子吧

浮点数的运算

浮点数的加减运算

运算规则可以简述为如下步骤:

  • 对阶

  • 尾数相加减

  • 规格化

  • 舍入

  • 判溢出

具体来说,各步骤的要求如下:

用流程图概括上述步骤的话,就是下面这样的:

举两个例子:

浮点数的乘除运算

具体来说,各步骤要求如下:

对于除法运算,有如下:

浮点数运算器

菜菜,捞捞~