关于C中的浮点数的存储问题

Sitrone 2015-03-29 09:26:53
假如一个字节由位模式11101011组成,并且规定从左往右,第1位为符号位,第2-4位为指数域,最后四位为小数域。

根据「计算机科学概论(第11版)」中关于浮点数的算法:
先求指数域(110)的内容,为 6 - 4 = 2,即将小数域(.1011)向左移动两位为 10.11,最后加上符号位,结果为-4.75

但是根据CSAPP中IEEE的规定,浮点标准用:V = (−1)S × M × 2^E表示:
根据公式计算可得:S=1,E=6-(2^(3-1) - 1)=3,M=1+1/2+1/8+1/16=27/16,最后V= -27/16 * 2^3 = -27/2

为什么两种方法算出来的结果不一样?还是我什么地方算错了?
...全文
106 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2015-03-30
  • 打赏
  • 举报
回复
赵4老师 2015-03-30
  • 打赏
  • 举报
回复
引用 2 楼 sz523921551 的回复:
[quote=引用 1 楼 zhao4zhong1 的回复:] http://bbs.csdn.net/topics/390676437
赵老师能否直接说明下,我是哪里出问题了?[/quote] 懒得说,自己运行这个链接里面我的程序,亲自观察一下。 理解讨论之前请先学会如何观察! 不要迷信书、考题、老师、回帖; 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实! 有人说一套做一套,你相信他说的还是相信他做的? 其实严格来说这个世界上古往今来所有人都是说一套做一套,不是吗?
Sitrone 2015-03-30
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
http://bbs.csdn.net/topics/390676437
赵老师能否直接说明下,我是哪里出问题了?

69,373

社区成员

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

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