处理具有大量数字的整数

时间:2009-10-13 11:49:43

标签: c++

如何处理在c ++中说25位的整数解决问题..

6 个答案:

答案 0 :(得分:6)

通常使用大号库,例如GNU MPbigint

答案 1 :(得分:2)

在小学,你可能学会了如何在纸上手动完成基本的4次操作(+ - * /)。孩子们将数字视为数字序列并逐位处理。

(至少我在波兰长大的孩子,我小时候就习惯了。)

此方法适用于任何大数字。添加25位长的数字与添加3位长的数字相同,只是更慢。

你必须回忆一下你小时候是如何做的,并编写一个以这种方式处理数字的计算机程序。

为了获得额外的性能和程序员可信度,请使用65536而不是基数10来编写它。

答案 2 :(得分:1)

如果你打算自己实现它而不是使用库函数,那么Donald Knuth撰写的“计算机编程艺术”,第二卷“Seminumerical算法”有一些有用的信息。

答案 3 :(得分:0)

答案 4 :(得分:0)

答案 5 :(得分:0)

我在Pascal的Uni做了类似的事情来添加和减去极端大数字。只需要处理超过数字限制的任何数字,然后任何溢出进入更大的桶。相反(尽管你需要更加小心)进行减法。

如果您想处理乘法和除法,并且您不想使用第三方包,那么我会向您推荐Mike Abrash的Zen of Graphics Programming副本。在其中,他列出了使用16位数字的32位乘法和除法。它是汇编程序,但你可以处理不是吗? - )