Floating point 定点而不是浮点

Floating point 定点而不是浮点,floating-point,precision,fixed-point,single-precision,Floating Point,Precision,Fixed Point,Single Precision,定点数至少需要和浮点数一样精确的位数是多少?如果我想用定点运算而不是浮点运算来进行计算,我需要多少位才能保证计算的精度 单精度(32位)浮点可以表示小到2^-126、大到2^-127的数字,这是否意味着固定点数必须至少为128.128格式?(整数部分为128位,小数部分为128位) 我知道单精度浮点数一次只能代表~7位十进制数字的范围,我询问的是所有可能的值 那么双精度(64位浮点)又如何呢?是否真的需要1024.1024格式才能达到同样的精度呢?因为,您需要存储具有范围内值的位 [2-1492

定点数至少需要和浮点数一样精确的位数是多少?如果我想用定点运算而不是浮点运算来进行计算,我需要多少位才能保证计算的精度

单精度(32位)浮点可以表示小到2^-126、大到2^-127的数字,这是否意味着固定点数必须至少为128.128格式?(整数部分为128位,小数部分为128位)

我知道单精度浮点数一次只能代表~7位十进制数字的范围,我询问的是所有可能的值

那么双精度(64位浮点)又如何呢?是否真的需要1024.1024格式才能达到同样的精度呢?

因为,您需要存储具有范围内值的位 [2-1492128),需要有符号的128.149定点类型,总宽度为278位

例如,需要存储值在范围内的位 [2-1074,21024),需要有符号的1024.1074定点类型,总宽度2099位

(免责声明:这一切都假设我犯了偶数个off by one错误。)

对于,您需要存储具有范围内值的位 [2-1492128),需要有符号的128.149定点类型,总宽度为278位

例如,需要存储值在范围内的位 [2-1074,21024),需要有符号的1024.1074定点类型,总宽度2099位


(免责声明:这一切都假设我犯了偶数个off by 1错误。)

请注意,128.128浮点实际上比IEEE-754浮点更精确,因为后者有间隙(因为使用了有限尾数和指数).浮点或多或少是一种指数格式,尾数/有效位大小固定,大于或小于范围[1.0,2,0]的值通过乘以2^指数(和一个符号)得到--请注意,我没有讨论非规范值、NaN或无穷大。定点格式不会有任何间隙。无论如何,这是有意义的,因为浮点数有32位,而128.128定点数有256位。但您真的需要所有这些值吗?请查看特定应用程序所需的值范围,并确定有多少个bits您需要。我认为您可以节省一些位。@RudyVelthuis“注意128.128浮点实际上会更精确”-对于几乎所有的值,是的。“您真的需要所有这些值吗?”可能不是,但我仍然好奇需要多少位才能达到与浮点类似的精度,特别是对于边缘情况。应该不太难找到:最小的非规范值是尾数和最小指数中的1(最低)位(-126,IIRC,但请不要限制我)。请注意,128.128浮点实际上比IEEE-754浮点更精确,因为后者有间隙(因为使用有限尾数与指数组合)。浮点或多或少是一种指数格式,尾数/有效位大小固定,值大于或小于范围[1.0,2,0]是通过乘以2^指数(和一个符号)得到的--请注意,我没有讨论非规范值、NaN或无穷大。定点格式不会有任何间隙。无论如何,这是有意义的,因为浮点数有32位,而128.128定点数有256位。但您真的需要所有这些值吗?请查看特定应用程序所需的值范围,并确定有多少个bits您需要。我认为您可以节省一些位。@RudyVelthuis“注意128.128浮点实际上会更精确”-对于几乎所有的值,是的。“您真的需要所有这些值吗?”可能不是,但我仍然好奇需要多少位才能达到与浮点类似的精度,特别是对于边缘情况。应该不太难找到:最小的非规范值是尾数和最小指数中的1(最低)位(-126,IIRC,但不要把我关在这一点上)。