2

我在某处读过,要处理大量算术(真的很大),我们应该将数字存储在最大平方根(MAXNUMBER)的大基数中。因为以较大的基数表示一个数字需要少量的数字,例如十进制的 120 = 二进制的 1111000。因此,如果我们在大基数中存储大量数字,是否会减少最低级别的位数?我不这么认为,因为十六进制数字系统中的任何数字肯定会在纸上占用少量数字,但不会在硬件上占用。

我想我在这里遗漏了一些东西。有人可以帮助我了解如何以更少的位数在位级别存储一个大的基数吗?

4

2 回答 2

0

这个想法是用更少的比特来表示数字。您可以将数字 1,000,000,000,002 表示为 1,000,000^2。当然,您会损失精度,但如果它是一个非常大的数字,您通常不会太在意精度损失。

于 2011-07-18T14:31:48.603 回答
0

取决于你想使用什么编码。你总是可以做二进制编码的十进制,你可以用四个二进制位对每个单独的二进制数字进行编码,或者你可以对数字使用扩展的二进制表示,例如 128 位数字等。你应该能够找到允许您在线执行上述两种解决方案的库。PS BCD 将占用较小的空间用于小数,但大量的位用于大数。也许你可以找到一些 BCD 的变体,这不是那么浪费

于 2011-07-18T14:45:14.507 回答