请教大家一个问题,关于二进制小数的。

傻瓜学者 2009-07-24 12:31:54
在定点小数简单的情形下,假如字长为n
书上说,它能表示的小数范围为:-(1-2^(-n))~~1-2^(-n)

这一点不太懂。假设n=3,那么2^(-3)=0.125,1-2^(-n)=0.875
按照书上的说法,它能表示的数的范围为:-0.875~~0.875
那诸如0.3、0.874、0.011这些数将如何表示呢?它所说的范围到底是指什么呢?

麻烦各位指点迷津!
...全文
180 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
傻瓜学者 2009-08-05
  • 打赏
  • 举报
回复
感谢各位!
最近上班比较忙没有及时结贴。
jue222 2009-07-27
  • 打赏
  • 举报
回复

浮点数据类型表示,采用IEEE754制定的浮点格式。
cnzdgs 2009-07-26
  • 打赏
  • 举报
回复
小数大多是用近似值表示的,只有极少部分可以精确表示。
十进制小数转换为二进制可以用循环乘2的方法,每次乘2的的结果大于1,则对应的二进制位为1,把结果减去1后继续循环,每次计算出一位数字,直到达到所需的精度为止。例如0.3:
第1次乘2后为0.6,对应的二进制位为0;
第2次乘2后为1.2,对应的二进制位为1,减1后为0.2;
第3次乘2后为0.4,对应的二进制位为0;
第4次乘2后为0.8,对应的二进制位为0;
第5次乘2后为1.6,对应的二进制位为1,减1后为0.6;
所以十进制0.3转换为二进制后是0.0100110011001……,循环节为1001。
KingWolfOfSky 2009-07-24
  • 打赏
  • 举报
回复
定点小数,假设n=3,那么.111就表示0.875,加上符号位它能表示的数的范围为:-0.875~~0.875
你算的2^(-3)=0.125是精度
0.3、0.874、0.011都无法精确表示,要根据你选择的位长和近似方法而定
goodider 2009-07-24
  • 打赏
  • 举报
回复
推荐楼主去看看浮点的各种进制的表示方法。

21,459

社区成员

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

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