浮点数规格化的表示问题

simple_blue 2011-05-05 04:32:07
浮点数规格化中的最大值,最小值等类似 (1-2^n)*(2^m - 1)是怎么计算出来的?
...全文
353 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
xmu_才盛 2011-05-05
  • 打赏
  • 举报
回复
主要看怎么表示了, 比如 尾数用 原码表示, 阶码用原码表示。
浮点数的 阶码 位数为n, 尾数 位数为 m

补码表示,规格化 尾数应该为 0.1*****,或者 1.0****

最大数为 尾数最大 + 阶码最大

尾数最大为 0.111111111111…… m个1, 即为 2^m-1
阶码最大 为 11111111…… n个1, 即为 2^n -1


其它 补码, 移码, 反码 等等 都有不同的范围, 但规格化的风格是一样的。。。

浮点数的存储格式 基于IEEE 754的浮点数存储格式 IEEE(Institute of Electrical and Electronics Engineers,电子电气工程师协会)在I985年制定的IEEE 754(IEEE Standard for Binary Floating-Point Arithmetic, ANSI/IEEE Std 754-1985 )二进制浮点运算规范,是浮点运算部件事实上的工业标准。 在计算机系统的发展过程中,曾经提出过多种方法表示实数,但是到目前为止使用最广泛的是浮点表示法。相对于定点数而言,浮点数利用指数使小数点的位置可以根据需要而上下浮动,从而可以灵活地表达更大范围的实数。 浮点数表示法利用科学计数法来表达实数。通常,将浮点数表示为 ± d.dd…d ×βe,其中d.dd… d 称为有效数字(significand),它具有 p 个数字(称p位有效数字精度),β为基数(Base),e为指数(Exponent),±表示实数的正负[1,2]。更精确地,± d0.d1d2…dp-1 × βe, 表示以下数 ±(d0+d1β-1+… +dp-1β-(p-1))βe,(0≤di<β= 对实数的浮点表示仅作如上的规定是不够的,因为同一实数的浮点表示还不是唯一的。例如,1.0×102 ,0.1 ×103 ,和0.01 ×104 都可以表示100.0。为了达到表示单一性的目的,有必要对其作进一步的规范。规定有效数字的最高位(即前导有效位)必须非零,即0<d0<β。符合该标准的数称为规格化数(Normalized Numbers),否则称为非规格化数(Denormalized Numbers)。

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧