我想实现一个能够处理非常大的数字的 BigInt 类。我只想对数字进行加法和乘法运算,但是该类还应该处理负数。
我想将数字表示为字符串,但是将字符串转换为 int 并返回以进行添加会产生很大的开销。我想像在高中一样实现加法,添加相应的订单,如果结果大于 10,则将进位添加到下一个订单。
然后我认为最好将它作为一个 unsigned long long int 数组来处理,并保持符号由 bool 分隔。有了这个,我担心 int 的大小,因为据我所知,C++ 标准只保证 int < float < double。如果我错了纠正我。因此,当我达到某个数字时,我应该向前移动数组并开始将数字添加到下一个数组位置。
是否有适合或更好的数据结构?
最佳答案
所以,您想要一个已知大小的动态整数数组?
听起来像 vector<uint32_t>
应该适合你。
关于c++ - 我应该为 BigInt 类使用什么数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9942595/