Library for working with big integers in Objective-C.
Objective-C C
Switch branches/tags
Nothing to show
Latest commit 9f30dc3 Aug 10, 2015 @kirsteins Merge pull request #9 from hphu/master
Add compare method to JKBigDecimal, add separate file for JKBigDecimal_iOSTests

README.md

JKBigInteger

About JKBigInteger

JKBigInteger is a small library to facilitate easy working with big integers in Objective-C. JKBigInteger is a Objective-C wrapper around LibTomMath C library. It is inspired by the Java's BigInteger.

Example

JKBigInteger *int1 = [[JKBigInteger alloc] initWithString:@"123"];

NSLog(@"%@ + %@ = %@", int1, int1, [int1 add:int1]);

JKBigInteger *int2 = [[JKBigInteger alloc] initWithString:@"10000001234567890123"];
JKBigInteger *int3 = [[JKBigInteger alloc] initWithString:@"123"];

NSLog(@"%@ - %@ = %@", int2, int3, [int2 subtract:int3]);

JKBigInteger *int4 = [[JKBigInteger alloc] initWithString:@"11111111111111111111"];

NSLog(@"%@ * %@ = %@", int4, int4, [int4 multiply:int4]);

JKBigInteger *int5 = [[JKBigInteger alloc] initWithString:@"10000001234567890123123123123"];
JKBigInteger *int6 = [[JKBigInteger alloc] initWithString:@"123"];

NSLog(@"%@ / %@ = %@", int5, int6, [int5 divide:int6]);

unsigned int numBytesInt5 = [int5 countBytes];
unsigned char bytes[numBytesInt5];
        
[int5 toByteArrayUnsigned:bytes];
        
for(unsigned i = 0; i < numBytesInt5; i++)
{
     NSLog(@"Byte %d: %X", i, bytes[i]);
}

JKBigDecimal *dec1 = [[JKBigDecimal alloc] initWithString:@"2015.987"];
JKBigDecimal *dec2 = [[JKBigDecimal alloc] initWithString:@"5.4"];
NSLog(@"%@ + %@ = %@", dec1, dec2, [dec1 add:dec2]);
NSLog(@"%@ - %@ = %@", dec1, dec2, [dec1 subtract:dec2]);
NSLog(@"%@ * %@ = %@", dec1, dec2, [dec1 multiply:dec2]);
NSLog(@"%@ / %@ = %@", dec1, dec2, [dec1 divide:dec2]);
NSLog(@"%@ %% %@ = %@", dec1, dec2, [dec1 remainder:dec2]);

JKBigDecimal *dec3 = [[JKBigDecimal alloc] initWithString:@"0.99"];
NSLog(@"%@ pow 365 = %@", dec3, [dec3 pow:365]);

Installation

You can easily add JKBigInteger to your project with CocoaPods by adding it to your Podfile:

pod 'JKBigInteger', '~> 0.0.1'

Read the 'Pod' Syntax Reference for more details.

Credits

JKBigInteger was created by Jānis Kiršteins. JKBigDecimal was created by Midfar Sun.

License

JKBigInteger is available under the MIT license. See the LICENSE file for more info.