【发布时间】:2015-01-14 14:57:19
【问题描述】:
Ruby 可以存储非常大的数字。现在想来,我什至不知道这怎么可能。
计算机以一系列两位数(0 和 1)存储数据。这被称为二进制表示法。但是,它们可以存储的数字大小是有限的。
如今,大多数当前操作系统都以 64 位运行。这意味着变量的最高可分配地址空间是 64 位。
整数存储在以 2 为底的系统中,这意味着计算机应该能够存储的最高值是
1111111111111111111111111111111111111111111111111111111111111111
由于计算机只能读取 2 个可能的值,这意味着上面的数字可以表示为
2 ^ 64
这意味着一个整数可以读取的最大值最多应该是 18,446,744,073,709,551,615
老实说,我什至不明白如何存储比这更高的整数值。
【问题讨论】:
-
你了解如何在内存中存储大于 64 字节的二进制文件吗?现在想象一下,该文件包含一个非常大的整数的二进制值......
-
简单,它不仅仅依赖于 64 位。虽然我不打算深入细节(因为我没有完全理解它们),但您想看看 BigNum 和 BigDecimal。 ruby-doc.org/stdlib-1.9.3/libdoc/bigdecimal/rdoc/…ruby-doc.org/core-1.9.3/Bignum.html
-
如何用 10 根手指存储大量数字?
标签: ruby binary integer 64-bit largenumber