浮点数编码介绍

来源:百度知道 编辑:UC知道 时间:2024/06/08 08:33:28
遗传算法中浮点数编码的介绍 越详细越好
很感谢这位朋友的回答 但是你能百度到得我一样能百度到 这个我知道 请朋友们给一点其他的资料

(1)浮点数:
  小数点位置可移动的数据称为浮点数,可用下式表示:N=M*RE
其中,M—尾数,
   R—阶的基数(也就是指数部分的底)。R 一般取2、8或16,为约定的常数,大多数机器 R 取定为2。
   E—阶的阶码。

  当基数约定后,对浮点数的编码就只需对尾数和阶码部分进行编码。浮点数在机器中的形式如下:
              
尾数M用定点小数表示,阶码E是整数。 M乘以RE后小数点的位置改变,改变指数部分RE的值,小数点的位置随之变动,故称上述表示法表示的数据为浮点数。

(2)浮点数的编码
  阶码E一般用移码或补码表示,尾数用原码或补码表示。
 机器零 当浮点数的尾数部分M=0时,不论阶码为何值,都看作是零值,称为机器零。
 上溢 浮点数的绝对值太大而机器不能表示的情况,此时浮点数的阶码大于机器所能表示的最大阶码。
 下溢 浮点数的绝对值太小(阶码小于机器所能表示的最小阶码)的情况称为下溢。当浮点数下溢时,通常将尾数各位强置为零 ,按机器零处理。
        

(3)规格化浮点数
  为了便于浮点数之间的运算与比较,也为了提高浮点数的精度,规定计算机中的浮点数尾数部分必须满足1/R≤|M|<1,也即,小数点后的第一位必须是有效数字。当尾数用补码表示,且R=2时,其规格化形式一般为:
                
上式表明,当尾数的最高数值位与符号位相反时,即为规格化形式。但对于M<0 有两种特殊情况需考虑。
   *M=-1/2,按规定是规格化数,但[-0.5]补=1.10…0,与一般情况相悖,为便于硬件判断,特规定-0.5不    是规格化的数(对补码而言)。
   *M=-1,因小数补码允许表示-1,且[-1]补=1.00…0.故将-1作为规格化数(对补码而言 )

(4)IEE754标准
现代计算机中,浮点数一般采用