美文网首页
为什么浮点数的偏置常数用127而不是128

为什么浮点数的偏置常数用127而不是128

作者: 大鱼鱼 | 来源:发表于2019-03-27 14:50 被阅读0次

    偏置常数

    • 通常编码位数为n时,bias取2^{n-1},或者2^{n-1}-1,当bias为2^{n-1},时移码和补码仅第一位不同,移码用来表示浮点数的阶。

    浮点数格式的规格化数的表示范围

    • 32位单精度浮点数
      32位
      单精度bias为2^{7}-1,为127
      双精度bias为2^{10}-1,为1023
    • 64位双精度格式
      第0位数符S,第1~11位为移码表示的阶码,第12到63位为二进制原码小数表示的尾数M,规格化尾数的小数点后第一位总是1,故规定第1位默认的1不明显表示出来,这样可以用52个数位表示53有效数字。

    为什么32位单精度浮点规格化的偏置常数用127,而不是128?

    • 用127,阶码的范围是0000 0001(-126)~1111 1110(127)
    • 用128,阶码的范围会变成0000 0001 (-127)~1111 1110(126)

    显然如果使用128作为偏置常数,能表示的最大的指数是126,比127小的多,所以使用127作为偏置常数。

    相关文章

      网友评论

          本文标题:为什么浮点数的偏置常数用127而不是128

          本文链接:https://www.haomeiwen.com/subject/acdzvqtx.html