浮点数的表示
在计算机中有两种存储方式:
通常,阶码为补码或移码表示的定点整数,尾数为补码或原码表示的定点小数。
尾数规格化
规格化浮点数,尾数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标准
具体来说,需要符合以下标准:
下面来看几个例子吧
浮点数的运算
浮点数的加减运算
运算规则可以简述为如下步骤:
对阶
尾数相加减
规格化
舍入
判溢出
具体来说,各步骤的要求如下:
用流程图概括上述步骤的话,就是下面这样的:
举两个例子:
浮点数的乘除运算
具体来说,各步骤要求如下:
对于除法运算,有如下: