浮点显示问题(在线等)

[复制链接]
3061|3
 楼主| geergeer 发表于 2007-8-29 10:20 | 显示全部楼层 |阅读模式
首先对浏览帖子的大侠表示由衷的感谢!小弟使用的是16f877的芯片,在project里把double类型改成32&nbsp;bit,然后有以下语句:double&nbsp;test=50.265;<br />然后运行程序后,小弟在watch中观察test变量的值,用hex显示为42H&nbsp;49H&nbsp;0FH&nbsp;5CH,但是这和小弟先前看过的一篇文档不符,该文档说法如下:<br /><br />&nbsp;十进制数转换成浮点数<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;设:十进数为A,则2Z=A,Z=&nbsp;lnA/ln2,指数P=int(z);尾数部分X:&nbsp;X=A/2P,&nbsp;其整数部分隐含为1(零除外),将其小数部分按原码格式化为二进制数,即为尾数的小数部分BY0&nbsp;BY1&nbsp;BY2。而指数偏差eb=P+7FH(其中的7FH&nbsp;为指数的偏移量)。符号位S,视十进制数的正负而确定。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;例如十进制数50.265化为32位规格化浮点数:A=50.265,则Z=ln50.265/ln2,P=int(Z),故P=5;&nbsp;X=A/2P=50.265/25=1.57078125,将0.57078125化为23位二进制小数,即是BY0&nbsp;BY1&nbsp;BY2,在最高位添上十进制数的符号位S(因十进制数为正数,故S=0);而eb=P+7FH,所以,十进制数50.265的32位规格化浮点数即为84H,49H,0FH,5CH。<br /><br />请大侠赐教~~是文档说法有误,还是小弟哪里理解或操作有误呢?
computer00 发表于 2007-8-29 10:23 | 显示全部楼层

84H,这不是负数么?

  
 楼主| geergeer 发表于 2007-8-29 12:06 | 显示全部楼层

小弟也觉得奇怪,之前一直没关心过这类问题,估计是文档

  
 楼主| geergeer 发表于 2007-9-2 16:29 | 显示全部楼层

顶一下,还有哪位大侠愿意指点一二吗

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

54

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部