Floating point 浮点格式~需要澄清

Floating point 浮点格式~需要澄清,floating-point,ieee-754,Floating Point,Ieee 754,我正在读大卫·戈德伯格的文章。文章说, 其中,β为基准,p为精度 我可以理解有e^{max}-e^{min}+1可能的指数,但为什么会有β^p可能的有效位?为什么会有\lceil log_2[snip…]+1位 (我在网上搜索过,但发现关于浮点运算的资料非常少。)根据定义,有效位是β底的一系列p“数字”,其中β底的数字是β可能值之一,从表示0的数字到表示β-1的数字 对于每个数字都有β可能值的p数字序列,有多少种选择?答案是βp:第一个数字有β选择,第二个数字有β选择,可以独立于第一个数字选择

我正在读大卫·戈德伯格的文章。文章说,

其中,
β
为基准,
p
为精度

我可以理解有
e^{max}-e^{min}+1
可能的指数,但为什么会有
β^p
可能的有效位?为什么会有
\lceil log_2[snip…]+1


(我在网上搜索过,但发现关于浮点运算的资料非常少。)

根据定义,有效位是β底的一系列p“数字”,其中β底的数字是β可能值之一,从表示0的数字到表示β-1的数字

对于每个数字都有β可能值的p数字序列,有多少种选择?答案是βp:第一个数字有β选择,第二个数字有β选择,可以独立于第一个数字选择,依此类推

例如,可以在β*β或β2值中选择两位数的有效位

更具体的例子是,十进制(β=10)中有1000个长度为3的有效位,从000到999。这1000种可能性可以通过仔细的编码用10位编码(用4位编码每一个十进制数字是行不通的,但更复杂的方法会起作用,因为10位使用得当,可以编码1024种可能性)

表达式“log2(βp)”只是根据信息论编码这些可能性的最小位数。该表达式的上限在您的问题中的公式中,用于将位数四舍五入为整数,以实现有效位的自包含表示。如果要比逐位更有效地对有效位进行编码,还可以从指数的表示中借用半位(这也可能不会用到所有位),但这是每个计算机科学家都应该知道的关于浮点运算的最小问题

公式末尾的“+1”与有效位无关,但与符号位相对应,如注释所示


请注意,如果您坚持使用二进制,您应该这样做,因为这可能是您在实践中唯一需要的东西,那么表示有效位所需的位数就是有效位的位数!关于任意基浮点的几乎无关的讨论是困扰许多浮点解释的祸害之一。根据定义,有效位是β底的一系列p“数字”,其中β底的一个数字是β可能值之一,从表示0的数字到表示β-1的数字

对于每个数字都有β可能值的p数字序列,有多少种选择?答案是βp:第一个数字有β选择,第二个数字有β选择,可以独立于第一个数字选择,依此类推

例如,可以在β*β或β2值中选择两位数的有效位

更具体的例子是,十进制(β=10)中有1000个长度为3的有效位,从000到999。这1000种可能性可以通过仔细的编码用10位编码(用4位编码每一个十进制数字是行不通的,但更复杂的方法会起作用,因为10位使用得当,可以编码1024种可能性)

表达式“log2(βp)”只是根据信息论编码这些可能性的最小位数。该表达式的上限在您的问题中的公式中,用于将位数四舍五入为整数,以实现有效位的自包含表示。如果要比逐位更有效地对有效位进行编码,还可以从指数的表示中借用半位(这也可能不会用到所有位),但这是每个计算机科学家都应该知道的关于浮点运算的最小问题

公式末尾的“+1”与有效位无关,但与符号位相对应,如注释所示


请注意,如果您坚持使用二进制,您应该这样做,因为这可能是您在实践中唯一需要的东西,那么表示有效位所需的位数就是有效位的位数!关于任意基浮点的几乎无关的讨论是困扰许多浮点解释的祸害之一。它们使这个主题变得更加困难和可怕。

谢谢。我读这篇文章是因为我想了解双精度64位格式的IEEE 754值,包括它有多少个值,各种值之间的差异(例如,正/负无穷大、正/负零和规范化/非规范化有限非零值),“四舍五入到最近”模式,二进制到十进制转换,和浮点乘法/除法/余数。我是否需要学习信息理论和/或其他理论来理解这些概念?我也不知道我是否需要通读这篇文章。你能给我指出正确的方向吗?@xfq159不,信息论与浮点运算完全无关,如果你感兴趣的是浮点运算,你不需要学习任何有关它的知识,而引入这些概念是WECSSKFPA的问题之一,哪怕只是以base 2中日志的上限的形式。你可以试试。另外,学习并使用Java和C99中的十六进制打印和解析格式
%a
。谢谢。我阅读这篇文章是因为我想了解双精度64位格式的IEEE 754值,包括它有多少个值,各种v之间的差异