Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Floating point 浮点和定点表示法的优缺点_Floating Point_Fixed Point - Fatal编程技术网

Floating point 浮点和定点表示法的优缺点

Floating point 浮点和定点表示法的优缺点,floating-point,fixed-point,Floating Point,Fixed Point,在过去的三天里,我一直在努力理解浮点和定点表示法之间的确切区别。我在阅读材料时感到困惑,无法判断什么是对的,什么是错的 其中一个问题是“精度”、“尾数”、“非规范化”、“下溢”等少数技术术语的含义 有人能举例说明区别吗 到目前为止,我能够找到(并且能够清楚地理解)以下几点:- 浮点- 1. 优势提供了非常大的范围 2. 劣势舍入大数 固定点- 1. 优势数字准确表示(涉及“金钱”时使用) 2. 缺点提供的范围非常有限 但我知道还有很多不同之处(主要是优点和缺点)。有人能列出它们并加以解释吗?浮点

在过去的三天里,我一直在努力理解浮点和定点表示法之间的确切区别。我在阅读材料时感到困惑,无法判断什么是对的,什么是错的

其中一个问题是“精度”、“尾数”、“非规范化”、“下溢”等少数技术术语的含义

有人能举例说明区别吗

到目前为止,我能够找到(并且能够清楚地理解)以下几点:-

浮点-
1. 优势提供了非常大的范围
2. 劣势舍入大数

固定点-
1. 优势数字准确表示(涉及“金钱”时使用)
2. 缺点提供的范围非常有限


但我知道还有很多不同之处(主要是优点和缺点)。有人能列出它们并加以解释吗?

浮点数适用于浮点数,也就是说,当您需要在不同的刻度上表示数字时。你牺牲精度来获得刻度范围

另一方面,定点数字只适用于固定的比例(如果比例过大,定点数字会超出或低于比例),但只要保持在所需的比例内,定点数字就会获得精度

简而言之:如果你乘法很多,但不加不同比例的数字,就用浮点。如果你加了很多但没有乘,使用固定点


(定点用例的一个很好的例子是与货币相关的任何东西:基本上,你可以将你的单位固定为美分或百分之一美分,并使你所有的货币值都是该单位的整数。)

浮点背后的技术需要花很多时间来适应。我将不在这里详述

简单地说,浮点实现了一个高域(从非常小的接近零的数字到非常高的数字,有时甚至高于宇宙中的原子数)。浮点通过保持相对误差常数来实现这一点。也就是说,数字将在小数位数固定后开始四舍五入(这是一种简化,但有助于理解原理)。这与大多数自然科学中的“重要人物”概念非常相似。然而,这意味着浮点数总是以某种方式四舍五入。如果你把一个非常小的数字加到一个非常大的数字上,那么这个小数字将被截断,而这个大数字将保持不变。当小数值低于阈值时,就会发生这种情况。如果您添加了许多数字,有时可能需要先对它们进行排序,然后在大数字之前添加小数字。还有一个数值稳定性的概念,即算法如何因舍入而偏离正确的结果。 另一方面,定点表示将始终具有相同的绝对误差。如果您将货币存储在小数点后4位,您知道您的数据将最多减少0.00005美分。但是,如果添加数据,此错误可能会再次累积,但其规则与浮点规则有很大不同


除非您正在进行繁重的数字工作,否则可能不应考虑这些问题。在大多数情况下,只要非常小心,浮点数和固定点数都可以正常工作(也就是说,不要对浮点数或固定点数使用
==
。但是,对两者进行比较的正确方法是不同的)。此外,AFAIK浮点数在科学工作中使用的频率更高,因为大多数情况下,科学家都会接受数字方面的培训,知道如何处理舍入,并且只对相对精确的结果感兴趣。固定点在金融中使用,每次取整都必须记录并存储在某个地方(银行通常只保留取整后的半个微币),因此您必须很好地控制绝对误差,以便以后能够对其进行解释。

固定点数字可以按线性时间排序。固定点也很重要 毫不含糊的每个可以在特定的定点协议中表示的数值只有一个表示形式,这在浮点协议中是不正确的


浮点具有更广泛的表示范围。这也是模棱两可的。浮点数可以在NlogN时间内进行排序

定点是整数格式的浮点数表示形式。因此,运算可以应用于数字,就像应用于整数一样。 使用这种方法的优点是浮点运算的成本更高(处理能力)。较新的处理器有专门的FPU(浮点单元)来处理这个问题


因此,定点运算是在处理能力有限的情况下进行的,一点精度损失不会造成严重破坏。

嗨,凯瑞克:)你能告诉我“精度”到底是什么意思吗。。我理解英语的意思。但在例如Oracle SQL中,我们定义了一个数字(精度、刻度),其中精度表示“位数”的总数。这太令人困惑了!浮点优点:高精度缺点:面积和功耗昂贵(计算密集型)定点优点:面积和功耗效率缺点:动态范围和accuracy@Appy:精度指的是信息量。例如,如果你测量某物的长度,你可以说它有1米长,或1.2米或1.2041米。所有这些在某种程度上都是“正确”的,但测量的精度在不断提高——即它们包含更重要的信息数字(代价是需要更多的存储和更精细的仪器)。此外,了解更高的精度并不意味着更高的精度也很重要:如果物体的长度确实为1.2100米,那么1.2米的精度是准确的