关于浮点数的编码问题

fibbery 2011-11-29 05:11:27

《汇编语言》

这本书的11页下方有一个关于浮点数编码的说明,没看懂。

编码方式为:8位阶码,24位尾码。
阶码采用过余码方式,即80H表示0,大于80H表示正数,小于80H表示负数,例如83H表示3,7DH表示-3。

主要的问题是,对于浮点数的范围不懂:

正数:2^127*(1-2^24)~2^-127*2^-1
负数:2^127*(-(1-2^-24))~2^-128*(-2^-1).

请帮我指点一下以上的正负数范围为什么是上述的范围,谢谢!
...全文
269 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
fibbery 2011-12-01
  • 打赏
  • 举报
回复
根据7楼的解释,我大致能理解为什么我的问题中都是-24次方了。

谢谢各位的帮助!结贴了!
大熊猫侯佩 2011-12-01
  • 打赏
  • 举报
回复
因为你题目里用24位表示尾数。
fibbery 2011-12-01
  • 打赏
  • 举报
回复
为什么尾数的指数是24?
liangbch 2011-11-30
  • 打赏
  • 举报
回复
我重新解释一下,看看你能否理解。教科书总是讲的晦涩难懂,无语。
单精度浮点数共32bit,其中 1bit符号位,8bit阶码,23bit尾数。
符号s:bit31, s=0 表示正数,s=1表示负数
阶码e:bit23-bit30, -127 <= e <= 127 , 实际存储为e+128, 即1表示-127,128表示0,255表示127, 0:另有含义
尾数m:bit0-bit22, 尾数总是介于0.5和1之间,即 0.5 <= m <1,因为尾数最高bit总是1,故不存储。故尾数的最高bit表示2^-2=0.25, 尾数的最低表示2^-24
fibbery 2011-11-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 mydo 的回复:]
浮点数 = 阶码 * 尾数

阶码是有符号表示 所以最大正数为127,最大负数为-127
尾数也是有符号表示,同理。

可以理解吗?
[/Quote]

关键是尾数的范围,还是没懂。
fibbery 2011-11-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 mustmust 的回复:]
哥们好,你也在看这本书啊?!
看到有什么错的没?----应该有不少吧,就是最明显的那种
我也在看这本书,看了前5章,错的答案,错的描述多的是,不是我一个人说错的---在论坛发帖证实过的。
看这本书我不知道骂了编者多少遍了啊,误人子弟。
[/Quote]
我刚从图书馆借的,才看了11页!
mustmust 2011-11-29
  • 打赏
  • 举报
回复
哥们好,你也在看这本书啊?!
看到有什么错的没?----应该有不少吧,就是最明显的那种
我也在看这本书,看了前5章,错的答案,错的描述多的是,不是我一个人说错的---在论坛发帖证实过的。
看这本书我不知道骂了编者多少遍了啊,误人子弟。
大熊猫侯佩 2011-11-29
  • 打赏
  • 举报
回复
浮点数 = 阶码 * 尾数

阶码是有符号表示 所以最大正数为127,最大负数为-127
尾数也是有符号表示,同理。

可以理解吗?
gsy999 2011-11-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fibbery 的回复:]
更正:
正数:2^127*(1-2^-24)~2^-127*2^-1
[/Quote]
最高位是符号位,去掉最高位余下来的位只能表示那么多数啊。具体看计算机中的数制吧。
fibbery 2011-11-29
  • 打赏
  • 举报
回复
更正:
正数:2^127*(1-2^-24)~2^-127*2^-1

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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