This is a Big Integer Class, implemented in C++, for handling very large numbers, or numbers greater than unsigned long long int in a 64 bit implementation. So, it can easily operate on numbers greater than 10^18.
Just include the file as a preprocessor directive, like : #include "name" where name denotes your filename, the name you saved for this Big Int file. Also, ensure that you keep it in the same directory as your working file, else you have to write the complete path in that place.
-
Download the BigInt.cpp source file. Then
#includeit in your code:#include "BigInt.cpp" // the actual path may vary
-
Create objects of the
BigIntclass, and do what you got to do!BigInt big1 = 1234567890, big2; big2 = "9876543210123456789098765432101234567890"; std::cout << big1 * big2 * 123456 << "\n"; // Output: 1505331490682966620443288524512589666204282352096057600
-
The second operand can either be a
BigInt, an integer (up tolong long) or a string (std::stringor a string literal).big1 = 1234567890; big1 = "123456789012345678901234567890"; big1 = big2;
-
big1 = +big2; // doesn't return the absolute value big1 = -big2; -
One of the operands has to be a
BigIntand the other can be aBigInt, an integer (up tolong long) or a string (std::stringor a string literal).big1 = big2 + 1234567890; big1 = big2 - "123456789012345678901234567890"; big1 = big2 * big3; big1 = 1234567890 / big2; big1 = "123456789012345678901234567890" % big2;
-
The second operand can either be a
BigInt, an integer (up tolong long) or a string (std::stringor a string literal).big1 += big2; big1 -= 1234567890; big1 *= "123456789012345678901234567890"; big1 /= big2; big1 %= 1234567890;
-
big1 = ++big2; // pre-increment big1 = --big2; // pre-decrement big1 = big2++; // post-increment big1 = big2--; // post-decrement
-
One of the operands has to be a
BigIntand the other can be aBigInt, an integer (up tolong long) or a string (std::stringor a string literal).if (big1 < 1234567890 or big1 > "123456789012345678901234567890" or big1 <= big2 or 1234567890 >= big1 or "123456789012345678901234567890" == big1 or big1 != big3) { ... }
-
std::cout << big1 << ", " << big2 << "\n"; output_file << big1 << ", " << big2 << "\n"; std::cin >> big1 >> big2; input_file >> big1 >> big2;
-
Convert a
BigIntto either astring,int,long, orlong long.Note: If the
BigIntis beyond the range of the target type, an [out_of_range exception][out_of_range-exception] is thrown.std::string str = big1.to_string(); int var = big1.to_int(); long var = big1.to_long(); long long var = big1.to_long_long();
Note: We are new to c++. We just created this class for only our learning purposes. We want to improve more in the future. We've tried our best for bug-free writing code, so any kind of mistake pointers there would be appreciated as well.
Thanks in advance for pointing us to any kind of mistake.
This Big Integer class was created by Farid Islam and Sujon Hasan

