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.
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]);
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.
JKBigInteger was created by Jānis Kiršteins. JKBigDecimal was created by Midfar Sun.
JKBigInteger is available under the MIT license. See the LICENSE file for more info.