标题:不理解exponent=1-median
只看楼主
简方
Rank: 1
等 级:新手上路
威 望:1
帖 子:5
专家分:0
注 册:2022-3-30
结帖率:0
已结贴  问题点数:20 回复次数:3 
不理解exponent=1-median
对于“正常”的浮点数,尾数 mant 隐含的整数部分为 1,并且在读取浮点数时,内存中的指数 exp 要减去中间值 median 才能还原真实的指数 exponent,也即:
mantissa = 1.mant(这个理解)
exponent = exp - median(这个理解)


当指数 exp 的所有二进制位都为 0 时,一切都变了!尾数 mant 隐含的整数部分变成了 0,并且用 1 减去中间值 median 才能还原真实的指数 exponent,也即:
mantissa = 0.mant(这个不理解,为什么呢?)
exponent = 1 - median(这个更加不理解,为什么exp是1呢)

搜索更多相关主题的帖子: 隐含 exp 浮点数 指数 整数 
2022-03-31 22:29
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:20 
当含有隐藏的 1. 时,其最小值是 1.mant 指数 x
也就是 0.1mant 指数 x+1

mantissa = 0.mant(这个不理解,为什么呢?)
因为指数已经是最低了,没法再降了,那就只能降尾数。
如果依旧是 1. 开头,那怎么降?

exponent = 1 - median(这个更加不理解,为什么exp是1呢)
看我最前面的解释,当你不要 1. 时,它指数就应该加1
2022-04-01 08:17
简方
Rank: 1
等 级:新手上路
威 望:1
帖 子:5
专家分:0
注 册:2022-3-30
得分:0 
回复 2楼 rjsp
谢谢您!
但还是不懂啊。可以用笔在纸上写出来,这样好理解,然后发到我的邮箱gsmusic1314@
2022-04-02 13:01
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
假如指数在 [-128,+127]范围之内
(有隐含的1.开头)0 * 2^0 表示 二进制的1.0
(有隐含的1.开头)0 * 2^-1 表示 二进制的0.1
(有隐含的1.开头)0 * 2^-2 表示 二进制的0.01
(有隐含的1.开头)0 * 2^-127 表示 二进制的0.000……0001

再要求小一个数量级,假如记为 (有隐含的1.开头)0 * 2^-128 的话,那我们可以说这种浮点数格式最小可表示的正数是 1.0 * 2^128
因为指数无可再降,尾数有个隐含的“1.”也无可再降。

设计者规定,当指数是最小值时,那就不含有隐含的“1.”,
(有隐含的1.开头)0 * 2^-127
降低一个数量级,不是变为 (有隐含的1.开头)0 * 2^-128 而是变为 (隐含的1.开头).10 * 2^(-128+1)
再降低一个数量级,变为 (隐含的1.开头).010 * 2^(-128+1)

------------------ 嫌长,那就直接看列表
1.0 * 2^+128
1.0 * 2^+127
1.0 * 2^+126
……
1.0 * 2^-125
1.0 * 2^-126
1.0 * 2^-127
0.10 * 2^-127 --- 此处,怎么与以上的表达分别出来呢?也就是怎么知道它是不是有隐含的1.开头呢?靠指数,它指数实际写的是-128,但表示的却是-127
0.01 * 2^-127
0.001 * 2^-127
……
0.000……001 * 2^-127
0.000……000 * 2^-127

如果你还听不懂的话,我没办法了,我就这水平
2022-04-02 15:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-508744-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.102947 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved