主题
Search

任意精度


在大多数计算机程序和计算环境中,任何计算(甚至包括加法)的精度都受到计算机字长的限制,即可以存储在处理器寄存器之一中的最大数字的限制。截至 2002 年中期,最常见的处理器字长为 32 位,对应于整数 2^(32)=4294967296。因此,在 32 位机器上进行通用整数算术运算允许两个 32 位数字相加得到 33 位(一个字加上一个溢出位),两个 32 位数字相乘得到 64 位(尽管最流行的编程语言 C 无法直接访问高位字,并且依赖程序员创建机器语言函数或用 C 编写速度慢得多的函数,最终开销约为九次乘法),以及一个 64 位数字除以一个 32 位数字,产生一个 32 位商和一个 32 位余数/模数。

任意精度算术由一组算法、函数和数据结构组成,这些算法、函数和数据结构专门设计用于处理可以具有任意大小的数字。这些函数通常修改标准的纸笔算术技术(例如长除法),并将它们应用于分解为字大小块的数字。

创建良好的任意精度算术的一个主要困难是知道何时停止计算。二进制小数 0.0101010101..._2 给出了 1/3 的非终止二进制展开,这说明了这个问题的一个简单示例。由于精确数字没有终止二进制分数展开的事实,因此必须在任意精度计算系统中构建额外的功能。这可以是故障安全的形式,也可以是可配置的“最大精度”,当计算达到某个非常小的数字时,计算将始终停止。


参见

精度, 有效数字算术

此条目由 Dan Uznanski 贡献

使用 Wolfram|Alpha 探索

参考文献

Knuth, D. E. 计算机程序设计艺术,第 2 卷:半数值算法,第 3 版。 雷丁,马萨诸塞州:艾迪生-韦斯利,1998 年。

在 Wolfram|Alpha 中被引用

任意精度

引用为

Uznanski, Dan. "任意精度。" 来自 MathWorld——Wolfram Web 资源,由 Eric W. Weisstein 创建。 https://mathworld.net.cn/ArbitraryPrecision.html

学科分类