大整数运算的一个问题
大整数运算采用int数组表示大整数,一个数组元素如果对应一个位有点浪费空间,那么可以用一个数组元素表示4个位,也就是数组是10000进制.
请问为什么是4个位,5,6,7,8,9可以吗?
因为10^x<2^32中,得出x<=9.63.所以(10^4)^2<2^32,就是如果表示4个位,那么这4个位的平方还不会溢出,如果大于4位,那么就有可能溢出?不知道我这种理解对不对?
求指教
还有一个问题,假设大整数最大200位,使用数组表示,一个int表示4个位,那么为什么使用的最大位数是200/4+1呢?为什么最后要加一个1?是因为溢出吗?
多谢!