浮点数的偏移量?

janoty 2012-06-21 06:38:22
http://www.matrixq.net/2011/12/10475.html

"IEEE754规定这个偏移量为2^(e-1)-1"

-------------------------------------------------------------------

float,其指数位8位。
为了使指数位为正数,加一偏移量。





----------------------------------移到----------------------------->
补码 | |
1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111

-8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7




如:
-1移到+7,加偏移量:2^(8-1)就可以了!

为什么浮点数的偏移量是:2^(8-1)-1
...全文
1126 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
善良超锅锅 2012-06-22
  • 打赏
  • 举报
回复
建议楼主去看看书,我手中的《计算机组成和体系结构》中都有这些讲解。

网络博客都是别人的总结,有的可能写的不适合学习,只适合博主自己做笔记用。

另外感觉上面第一问题没说好,再说一遍:


一,为什么浮点数的偏移量是:2^(8-1)-1?

为什么不是2^(8-1)而是2^(8-1)-1呢?在原来的基础上-1,是为了把原来能表示把指数(阶码)的最大值作浮点数的特殊标记。
善良超锅锅 2012-06-22
  • 打赏
  • 举报
回复 1
让哥来告诉你吧!

一,为什么浮点数的偏移量是:2^(8-1)-1?
本来移码的偏移量是你说的2^(8-1),但IEEE754规定是2^(8-1)-1?
这样规定是有原因的。你会注意到如果阶码e的偏移量是2^(8-1)-1后阶码的最大值只能是127+127=254了,也就是阶码的最大指数值为+127,127+128=255用来表示浮点数的特殊标记了,比如一个浮点数的e=255,其他位为0时,表示这个浮点数为无穷大。

二:二,计算机内部,二进制是以补码的形式表示。
其偏移量与移码没有任何关系,对否?

二进制不一定都是补码表示 ,也有原码表示的。
其偏移量和移码的偏移量不是一个概念。

janoty 2012-06-21
  • 打赏
  • 举报
回复
问题:
一,为什么浮点数的偏移量是:2^(8-1)-1?
二,计算机内部,二进制是以补码的形式表示。
其偏移量与移码没有任何关系,对否?
janoty 2012-06-21
  • 打赏
  • 举报
回复 1


//补码
|------------------------移到---------------->|
| |
1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111
-8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7


69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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