c – 具有字符数组实现的BigInteger的上限是多少?

如果我用一个字符数组(在C中)强制BigInteger,就10的幂而言,在32位系统中我的上限是多少?

换一种说法,

– 10 ^ x< N <= 10 ^ x (第一个字符是为标志保留的). 什么是32位系统中的x? 请暂时忽略我们已为操作系统保留内存,并认为我们可以寻址所有4GB内存.

最佳答案 一个8位字节可以容纳28个或256个唯一值.

4GB内存为232或4294967296字节.

或者4294967295,如果我们减去要为符号保留的一个字节

这是34359738360位.

这么多位可以容纳234359738360个唯一值.

- 10^x < N <= 10^x

(first character is reserved for sign).

What is x in 32 bit system?

Wolfram Alpha suggests – 10 ^ 1292913986< N< = 10 ^ 1292913986作为10的最大可表示的幂. 所以x是1,292,913,986.

点赞