Big numbers library in c++

Rontogiannis Aristofanis picture Rontogiannis Aristofanis · Oct 20, 2012 · Viewed 54.1k times · Source

I'm doing a project which requires really big numbers, up to 100 digits. I have read that java supports big integers (java.Math.BigInteger), and I want to know if there is something like that in C++. So, here is my question: Is there a standard or non-standard c++ library which implements big integers?

Note: If there is no standard implementation for big integers, I would like a simple non-standard. Thanks in advance.

Answer

saeedn picture saeedn · Oct 20, 2012

The GNU Multiple Precision Arithmetic Library does what you want http://gmplib.org/

Gnu MP is a C library but it has a C++ class Interface and if you are interested only in big integers, you may just deal with mpz_class. Look at the sample below which I took from the page C++ Interface General

 int main (void)
 {
   mpz_class a, b, c;

   a = 1234;
   b = "-5678";
   c = a+b;
   cout << "sum is " << c << "\n";
   cout << "absolute value is " << abs(c) << "\n";

   return 0;
 }