濯茶的前端思考 2014-12-03 14:33 采纳率: 41.2%
浏览 2135

关于C语言浮点的一个练习题

今天看深入理解计算机系统,浮点那一节一个习题。看不明白什么意思。
求指点,谢谢···
题目:
A.假定一个k位指数和n位小数的浮点格式,给出不能准确描述的的最小正整数的公式。
(因为要想准确表示它需要n+1位小数)
B.对于单精度格式(k=8,n=23),这个整数的数字值是多少?
答案:
这个练习帮助你思考什么数是不能准确表示的。
这个数的二进制表示是:1后面跟着n个0,其后再跟1,得到值:2的n+1次方+1。

当n=23时,值是:2的24次方+1=16 777 217

附上答案,便于看懂。

我想了半天,不知道这个题目想要表达什么。。求指点

  • 写回答

3条回答

  • threenewbee 2014-12-03 14:48
    关注

    如果二进制你不能理解,我们用十进制来打比方。
    让你用 10^k * y的形式来表示一个整数,其中y可表示的范围是0~10^24-1(23位数),那么“不能准确描述的的最小正整数”是多少?显然,0~10^24-1都可以表示,要表示10^24呢,我们就得写10*10^23,因为最后是0,这么写也是精确的。
    那么如果是10^24+1呢?是不是不能表示了?
    现在仅仅是把十进制换成二进制,道理相同。

    评论

报告相同问题?