非常大的整数通常是stored as variable-length arrays of digits在内存中,而不是像大多数原始的'int'或'long'类型那样简单的二进制表示,如在Java或C中。考虑到这一点,我很想知道可以计算的算法:
一个整数必须达到的计数才能将它作为BigInteger(或等效的任意精度算术结构)存储到整数位数的给定基数之前变得更有效率; < / p>
哪个基数最有效存储此大整数的数字。
我提到'效率';通过这个,我的意思是我主要关注这样一个BigInteger消耗的 space 的数量,尽管我也有兴趣听到有关处理速度或时间复杂度的任何评论。
答案 0 :(得分:0)
如果以原始二进制格式存储,则整数应占用最小空间(除非它可能是一个小整数,而数据类型对于它来说太宽 - 要在128位long long
中存储1)。以不同方式存储不会保存任何内存,而是用于使这些整数的工作更容易。
如果逐字节,则转换为256'ecimal基数 - 256个可能的值,与字节可以保持的一样多。
答案 1 :(得分:0)