在iOS中存储和执行大量操作

时间:2013-01-04 16:29:36

标签: ios numbers

我如何使用以下数字处理操作: 48534588306961133067968196965257961415756656521818848750723547477673457670019632882524164647651492025728980571833579341743988603191694784406703

到目前为止,我没有尝试过任何工作......无条件长,长等等......

3 个答案:

答案 0 :(得分:2)

您需要的是一个库,它支持对任意长度的整数进行操作。但是,从我能够找到的,没有用Objective-C编写的这样的库。

但是你很幸运,因为Objective-C是C的超集。这使你可以使用C库,例如this somewhat dated SO question的答案中描述的库。

此外,由于Clang编译器支持C ++并结合了Objective-C和C ++代码,因此您可以使用类似big int的内容。

请注意,没有任何内置类型甚至接近于足以表示具有与示例一样多的数字的数字。最大的可用整数类型是unsigned long long,如果你不需要负数,它的大小是8字节/ 64位,这给你一个0-18446744073709551615或最多20位的范围。

答案 1 :(得分:2)

您可以使用JKBigInteger代替它,它是LibTomMath C库的Objective-C包装器。并且非常易于使用和理解。

在你的情况下:

JKBigInteger *int = [[JKBigInteger alloc] initWithString:@"48534588306961133067968196965257961415756656521818848750723547477673457670019632882524164647651492025728980571833579341743988603191694784406703"];

答案 2 :(得分:1)

您可以在此处尝试:http://gmplib.org/

GMP是一个免费的库,用于任意精度算术,对有符号整数,有理数和浮点数进行操作。精度没有实际限制,除了机器GMP中可用内存所暗示的那些限制。 GMP具有丰富的功能,并且功能具有常规接口。