Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

BigInteger in C?

What is the easiest way to handle huge numbers in C? I need to store values in the Area 1000^900, or in more human readable form 10^2700.

Does anybody know of an easy way to do that? Any help would really be appreciated!

like image 552
Chris Avatar asked Feb 19 '09 12:02

Chris


People also ask

Is there BigInteger in C++?

bigint is a C++ library which can handle Very very Big Integers. It can calculate factorial of 1000000... it can go any big. It may be useful in Competitive Coding and Scientific Calculations which deals with very very large Integers. It can also be used in Decryption process.

What is BigInt used for?

BigInt is a new data type intended for use when integer values are larger than the range supported by the Number data type. This data type allows us to safely perform arithmetic operations on large integers, represent high-resolution timestamps, use large integer IDs, and more without the need to use a library.

Is BigInteger a data type?

The bigint data type is intended for use when integer values might exceed the range that is supported by the int data type. bigint fits between smallmoney and int in the data type precedence chart. Functions return bigint only if the parameter expression is a bigint data type.

How do you handle BigInteger in C++?

Handling large numbers in C++? In C++, we can use large numbers by using the boost library. This C++ boost library is widely used library. This is used for different sections. It has large domain of applications.


2 Answers

Use libgmp:

GMP is a free library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating-point numbers. There is no practical limit to the precision except the ones implied by the available memory in the machine GMP runs on...

Since version 6, GMP is distributed under the dual licenses, GNU LGPL v3 and GNU GPL v2...

GMP's main target platforms are Unix-type systems, such as GNU/Linux, Solaris, HP-UX, Mac OS X/Darwin, BSD, AIX, etc. It also is known to work on Windows in both 32-bit and 64-bit mode...

like image 145
kmkaplan Avatar answered Sep 22 '22 23:09

kmkaplan


There are a few libraries to help you do this (arbitrary precision mathematics):

  • BigDigits;
  • iMath;
  • decNumber; and
  • no doubt others.

Assuming this isn't work related (ie you're doing it for fun or its a hobby or just an oportunity to learn something), coding up a library for arbitrary precision maths is a relatively interesting project. But if you need to absolutely rely on it and aren't interested in the nuts and bolts just use a library.

like image 31
cletus Avatar answered Sep 19 '22 23:09

cletus