技术中心
 
 

浮点数常用的编码方法

   日期:2009-10-13     来源:互联网    
浮点数常用的编码方法

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

  通常情况下,数的符号位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线路。

 
  
  
  
  
 
更多>同类技术
 
全年征稿 / 资讯合作
 
推荐图文
推荐技术
可能喜欢