小数的机内表示的问题

hasagiiiii 2010-05-23 11:24:31
为什么阶码要加上127?
我找了很多地方,都没有详细说明,有的说可以区分正负,用最高位表示符号不就好了吗?
...全文
97 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
hasagiiiii 2010-05-24
  • 打赏
  • 举报
回复
谢谢你的IEEE标准
  • 打赏
  • 举报
回复
。。。。。。。。。
hasagiiiii 2010-05-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lxdfigo 的回复:]
应该是区分阶码的正负吧,最高位是浮点数的正负号,浮点数的阶码也有正负,用来定义小数点的位置。(如有效数字乘以2的负多少次方,或2的正多少次方)
[/Quote]为什么要用移码呢?直接用最高位表示正负不就好了?
lxdfigo 2010-05-23
  • 打赏
  • 举报
回复
应该是区分阶码的正负吧,最高位是浮点数的正负号,浮点数的阶码也有正负,用来定义小数点的位置。(如有效数字乘以2的负多少次方,或2的正多少次方)
zenny_chen 2010-05-23
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 skyworth98 的回复:]
不是你想的那样子的
浮点数都只有小数点后面的部分,负阶码是为了精确的表示极小的小数。
[/Quote]
呵呵呵,你再好好翻翻标准吧。
IEEE规格化浮点数的尾数部分和进来时前面是要加1的,也就是1.fragment
如果没有负数阶码,根本就无法表示小于1的浮点数。因为整个浮点数是(2 ^ e) * 1.xxxx
skyworth98 2010-05-23
  • 打赏
  • 举报
回复
不是你想的那样子的
浮点数都只有小数点后面的部分,负阶码是为了精确的表示极小的小数。

[Quote=引用 7 楼 zenny_chen 的回复:]
引用 2 楼 lijiantao923 的回复:

引用 1 楼 lxdfigo 的回复:
应该是区分阶码的正负吧,最高位是浮点数的正负号,浮点数的阶码也有正负,用来定义小数点的位置。(如有效数字乘以2的负多少次方,或2的正多少次方)
为什么要用移码呢?直接用最高位表示正负不就好了?

楼上说的是n的负幂次,也就是像2 ^ (-2) = 1 / 4 = 0.25
否则你小数想怎么表示……
[/Quote]
skyworth98 2010-05-23
  • 打赏
  • 举报
回复
你可以去查查浮点数的标准就明白了.

[Quote=引用楼主 lijiantao923 的回复:]
为什么阶码要加上127?
我找了很多地方,都没有详细说明,有的说可以区分正负,用最高位表示符号不就好了吗?
[/Quote]
zenny_chen 2010-05-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lijiantao923 的回复:]

引用 1 楼 lxdfigo 的回复:
应该是区分阶码的正负吧,最高位是浮点数的正负号,浮点数的阶码也有正负,用来定义小数点的位置。(如有效数字乘以2的负多少次方,或2的正多少次方)
为什么要用移码呢?直接用最高位表示正负不就好了?
[/Quote]
楼上说的是n的负幂次,也就是像2 ^ (-2) = 1 / 4 = 0.25
否则你小数想怎么表示法?呵呵呵。
zenny_chen 2010-05-23
  • 打赏
  • 举报
回复
呵呵呵呵。楼主可以参考一下 Wiki上的说明,源自IEEE754标准。
IEEE754 1985这个讲得更简洁明了,就贴这个:
http://en.wikipedia.org/wiki/IEEE_754-1985
hasagiiiii 2010-05-23
  • 打赏
  • 举报
回复
谁能说一下原因吗?

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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