如何在C+中实现大整数

如何在C+中实现大整数

我想在C+中实现一个大型int类,作为编程练习-这个类可以处理大于长int的数字。我知道已经有几个开源实现了,但我想写我自己的。我想了解一下什么是正确的方法。

我知道一般的策略是将数字作为字符串,然后将其分解为较小的数字(例如个位数),然后将它们放在数组中。此时,实现各种比较操作符应该相对简单。我主要关心的是如何实现加法和乘法。

我正在寻找一个通用的方法和建议,而不是实际的工作代码。


肥皂起泡泡
浏览 405回答 3
3回答

炎炎设计

这里有一个完整的章节:[计算机编程艺术,第2卷:半数值算法,4.3节多重精确算法,第265-318页(第3版)]。你可以在第四章,算术中找到其他有趣的材料。如果您真的不想再看另一个实现,那么您考虑过要学习的是什么吗?有无数的错误要犯,而揭露这些错误是有教育意义的,也是危险的。在确定重要的计算经济和拥有适当的存储结构以避免严重的性能问题方面也存在挑战。一个对你的挑战问题:你打算如何测试你的实现,你打算如何证明它的算术是正确的?您可能想要对另一个实现进行测试(不需要查看它是如何实现的),但是要能够进行泛化而不需要测试的程度,还需要更多的时间。不要忘记考虑失败模式(内存不足、堆栈不足、运行时间过长等)。玩得开心!
打开App,查看更多内容
随时随地看视频慕课网APP