如何在内存中表示极大的浮点数?

时间:2014-05-24 01:54:11

标签: c gmp bigint largenumber

像GMP这样的任意精度库如何存储内存中表示的极大浮点数?

我想如果你想要计算Pi或Euler的常量来说,你需要为小数位右边的数字分配大量字节的2,000,000个数字。每个字节将存储2个小数位值,该数组将是数据结构的成员,其中包含用于存储该值的位数和字节数。

这是如何运作的?

1 个答案:

答案 0 :(得分:4)

当前的计算机有32位或64位寄存器,因此对字节进行计算效率非常低。此外,计算机以二进制方式工作,因此使用2的幂的基础更有效。他们将使用基础2 32 或2 64 ,如Mysticial所说。每个计算机字将存储一个数字的数字,并且它们逐位工作。

在某些情况下,您不需要太多计算,但大部分时间您都需要输入和输出十进制字符。使用功率或10的基础的这种情况更有效。您可以在32位计算机中使用10 9 ,在64位计算机中使用10 19 ,因为它可以存储在32位中的最大功率10或64位值