【问题标题】:Whats the smallest de-/normalized number greater than 1?(64bit)大于 1 的最小去/归一化数是多少?(64 位)
【发布时间】:2013-12-02 03:19:23
【问题描述】:

我正在与非规范化数字作斗争。

我知道:

本质上,非规范化的浮点数能够表示 可以表示的最小(数量级)数字 任何浮点值。

我也知道数字可以这样表示:

但是我卡住的地方是去/归一化数字的实际计算?

有没有办法做到这一点?有什么特殊的数字吗?

不胜感激!

【问题讨论】:

    标签: floating-point binary floating-accuracy ieee-754 denormalization


    【解决方案1】:

    “次正常”是 IEEE 754 标准中使用的术语。

    没有大于 1 的次正规数;次正规数很小(比正规数更小)。

    最小正态指数为 -1022(编码为位 00000000001,因为指数编码有 1023 的偏差)。次正规数具有较低的指数编码,编码为全零位 00000000000。

    次正规数的值是有效数(小数部分)乘以 2-1022,应用符号位(0 表示正数,1 表示负数)。有效数字由前导 0 构成,然后是小数点“.”,然后是有效数字字段的位。因此,如果有效数字字段包含 0101010101010101010101010101010101010101010101010101,则有效数字值为(二进制)0.01010101010101010101010101010101010101010101010101010101010101010101010>2>

    如果有效位字段完全为零,则该值为零,并且该数字通常不被认为是次正规的。最小的正次正规数的最低位为 1,所有其他位为 0。其值为0.00000000000000000000000000000000000000000000000000012•2-1022,即2-52•2-1022 = 2-1074.

    【讨论】:

    • @user5414:符号位始终为 0 表示正数,1 表示负数。我不知道历史。可能只是整数以这种方式增长(从0计数到某个数字,然后必须使用高位来表示否定)。在浮点数中,它通常通过将符号的贡献写为 -1 的符号位次方来表示,这会产生 0 的 +1 和 1 的 -1。
    • @user5414 1 在符号位中表示负数,因为它是这样定义的 - 认为它表示存在“-”符号......可能与不使用符号表示正数的“正常”做法 - 我们通常不写“+42”,但符号通常用于负数。不过,我认为没有任何重要的技术原因可以这样定义它……
    • @user5414 IEEE 浮点格式对尾数使用符号幅度表示,这意味着符号位是一个单独的实体(与通常是二进制补码表示的整数不同)。因此,无论尾数的零/无穷大/正常/次正常状态如何,符号位的含义都是一样的。结果,您实际上可以有 -0,它不等于 +0(但它们确实比较相等)。
    • @user5414 在线搜索文章或其他文档应该相对容易,这些文章或其他文档提供了对格式的深入描述(有些提供的细节比您关心的更多)。您应该也可以在网上找到实际的标准...
    • @user5414:在 IEEE-754 64 位二进制浮点中,次正规数都使用 2**-1022。正常指数范围从 -1022 到 1023。
    猜你喜欢
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-27
    • 2011-06-26
    • 2013-12-02
    • 2018-04-26
    相关资源
    最近更新 更多