首页 > csapp: 浮点数舍入

csapp: 浮点数舍入

如图所示:

不是很理解为什么明明是偶数的出来的却是奇数,还有那句使得最低有效数字是偶数,哪一位算最低有效位呢?


应该是书面错误吧,那里上面都说了是向最接近值舍入,其实也就是所谓的四舍五入(猜测)


说下我搜索之后看到的个人感觉比较靠谱的结果不一定正确!!!

通常情况下我们采取的舍入规则是在原来的值是舍入值的中间值时,采取向偶数舍入,在二进制中,偶数我们认为是末尾为0的数。而倘若不是这种情况的话,则一般会有选择性的使用向上和向下舍入,但总是会向最接近的值舍入。其实这正是IEEE采取的默认的舍入方式,因为这种舍入方式总是企图向最近的值的舍入。

也就是说对于取最低有效位只能得到一个结果的,就不用考虑向偶数舍去的情况,只有碰到会得出2个结果时,才取偶数位就拿上面的几个数来说吧.
首先看他需要的是取整(也就是说我们要看向最低有效位的下一位也就是十分位)

(1.40)10 -> (1.011...)2 -> 因为十分位是0 直接是1.
(1.6)10->(1.1001...)2 -> 十分位是1, 但是显然更靠近2,所以取2.
(1.5)10->(1.1000...)2 -> 十分位是1而且之后都是0,同时靠近2和1,此时考虑把最低有效位1(变成0),也就是说使得结果变成(10.000...)2, 所以是2.
(2.5)10->(10.1000...)2 -> 十分位是1而且之后都是0,同时靠近2和3,此时考虑最低有效位0(保持),所以是变成了(10.000)2.

这就是我个人分析的结果,如果有不对欢迎提出,谢谢...

【热门文章】
【热门文章】