Lar*_*rry 1 floating-point range median
我们有一个适合16位的浮点代码,其中1位代表正负号,4位代表指数,11位代表有效位。我已经阅读了有关浮点的内容,并能够找到标准化指数的范围。我认为这将是1-bias和2 ^(exp-1)-1导致[-6,7]的范围。
我也一直在尝试查找正归一化值的范围,代码的中值,正中归一化值的中值和正值的中值。
我知道要找到最大的正归一化值,我需要计算0 0000 11111111111(最小)和0 1110 11111111111(最大)。另外,可以编码多少个不同的值?会是2 ^ 16吗?
仅当您使用类似于ieee-754的格式时,以下内容才有意义,这很合理,因为您似乎遵循该标准来确定上述最大数量。我已经从字面上回答了您的隐含问题,希望它有用。
非规格化值的范围
0 0000 00000000000 - 0 0000 11111111111
Run Code Online (Sandbox Code Playgroud)
那是 0 to 2^-6 * (1-2^-11)
代码的中位数
中位数只是所有代码的“中间”。如果您通过代码订购所有东西,那么这是两个主要的东西:
0 1111 11111111111
1 0000 00000000000
Run Code Online (Sandbox Code Playgroud)
在NaN到零之间!如果要插入零和NaN之间的值,则答案将为NaN。如果仅按值对它们进行排序,则说0.0是按浮点数的常规顺序的中心代码可能更有意义。
正归一化值的中位数
我们需要找到范围的中间范围:
0 0001 00000000000
0 1110 11111111111
Run Code Online (Sandbox Code Playgroud)
添加未计数的代码,将代码除以二。介于两者之间。
0 0111 11111111111
0 1000 00000000000
Run Code Online (Sandbox Code Playgroud)
大约是2.0。
正值的中位数。
类似的逻辑,请获取:0 0111 01111111111
大约是1.5。(这是有意义的,包括额外的尾数位范围,会使您的中位数增加一半的尾数范围)
可以编码的不同值的数量
如果您区分不同的NaN和-0,则为2 ^ 16。
如果排除NaN,则必须为每个符号减去所有代表NaN的代码(所有非零尾数):2 ^ 16-2 *(2 ^ 11-1)。