Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
Rng
 
 
 
 
 
 
 
 
 
 
 
 

BigIntegerCPP

BigIntegerCPP is a C++11 port of large integer library used in CryptoLib4Pascal. It allows mostly parsing of numbers as strings in different bases (2, 8, 10 & 16) and converting them back to string, also in different base as stated above. The advantages of this library is its simplistic nature and cleanliness of code.

Code Example

Here is a sample of code which uses BigIntergerCPP to calc 2^20.

#include <iostream>
#include "Base/BigInteger.h"

using namespae std;

int main()
{
    BigInteger::Boot();
    
    BigInteger two("2");
    BigInteger result = two.Pow(20);
    cout << result.ToString(2) << endl; // output string in Base 2

    return 0;
} // end main

Note: Some other functions you might like

  RabinMillerTest
  IsProbablePrime
  ModInverse (Modular Inverse)
  ModPow (Modular Exponentiation)
  NextProbablePrime
  Negate
  TestBit
  GetLowestSetBit
  SetBit
  ClearBit
  FlipBit
  GCD (Greatest Common Divisor (HCF)) 
  Square 
  AbsoluteValue (Get Absolute Value of a Negative BigInteger)
  Random (PcgRandom)

Tested Enviroments:

Visual Studio 2015.

Unittests:

You can find all the unit tests in the Unittest folder. To run the unit tests, you should have boost library installed in your workstation.

Special Note:

You may have noticed that this library needs to Boot firstly before you can begin to use it else it will crash. So, I wrote a wrapper around the BigInteger library called BigIntegerWrapper for those who feel they might forget to Boot the library before using it.

License

This "Software" is Licensed Under MIT License (MIT) .

Tip Jar

  • 💵 Bitcoin: 1Mcci95WffSJnV6PsYG7KD1af1gDfUvLe6

Conclusion

Special thanks to Xor-el for making this library available in the first place.

About

A C++11 large integer library with effective high performance, simplistic in nature and also clean in the eyes.

Resources

License

Releases

No releases published

Packages

No packages published