打印本文 打印本文  关闭窗口 关闭窗口  
浮点数常用的编码方法来源于瑞达科技网
作者:佚名  文章来源:网络  点击数  更新时间:2011/1/18   文章录入:瑞达  责任编辑:瑞达科技

浮点数常用的编码方法

  前面已经说到,在计算机内,浮点数被表示为如下格式:
  

  通常情况下,数的符号位Ms,仍然采用0表示正号、1表示负号的规则。数的尾数部分M采用定点小数形式表示,可用原码(或补码)等编码方式。讨论浮点数的编码方法的关键,是确定对阶码部分的编码方法。

  在多数通用计算机中,浮点数的阶码部分多采用整数形式的移码表示。对由1位符号位和n位数值位组成的二进制形式的阶码,其移码的定义为:

    [X] = 2n + X -2-n ≤ X < 2n              (2.15)

  将这一定义与整数补码的定义相比较,

    [X] =(2.16 )

  就可找出移码和补码之间的如下关系:
  当 0 ≤ X < 2 n 时,[X]= 2 n + X = 2 n + [X]
   -2 n≤ X < 0 时,[X]= 2n + X = (2n+1 + X) - 2n

  这表明,由[X]补 得到 [X]移 的方法是变 [X]补 的符号为其反码。例如:
   X = +1011, [X] = 01011, [X] = 11011
   X = -1011, [X] = 10101, [X] = 00101

  移码的性质:
  最高一位为符号位,但其取值与原码和补码都相反,1代表正号,0代表负号。
  移码只用于表示浮点数的阶码,故只用于整数。
  对移码一般只执行加减运算,在对两个浮点数进行乘除运算时,是尾数实现乘除运算,阶码执行加减运算。对移码执行加减运算时,需要对得到的结果加以修正,修正量为2n,即要对用移码求得的符号位取反后,得到的才是移码形式的正确结果。

  在移码表示中,0有唯一的编码,即 [+0] = [-0] = 1000…0。而且浮点数机器零的形式为000…000。当浮点数的阶码≤-2 n时,不管尾数值大小如何,都属于浮点数下溢,被认为其值是0。此时,移码表示的阶码值正好是每一位都为0的形式,这有利于简化机器中的判0线路。

打印本文 打印本文  关闭窗口 关闭窗口