我有一个非常大的无符号整数在NSString中。它可能大于2^64。 是否存在解析这个数字的现有函数/类?
据我所知,这是一个无符号长长整型值,但是,很难知道我应该使用什么样的方法来解析它。
我有一个非常大的无符号整数在NSString中。它可能大于2^64。 是否存在解析这个数字的现有函数/类?
据我所知,这是一个无符号长长整型值,但是,很难知道我应该使用什么样的方法来解析它。
#include <stdlib.h>
...
unsigned long long parsedValue = strtoull([yourString UTF8String], NULL, 0);
也许有其他更加简单易懂的方法来实现它。
这是一个旧的问题,但这里有一个稍微更加Cocoa风格的变体,基于Stephen Canon的(正确的)答案:
#import <stdlib.h>
@implementation NSString (MyHelpers)
- (unsigned long long)unsignedLongLongValue {
return strtoull([self UTF8String], NULL, 0);
}
@end
这可能有效,但只能到达 2^63 - 1:
NSScanner *scanner = [NSScanner scannerWithString:numericString];
long long valueFromString;
if(![scanner scanLongLong:&valueFromString]) {
//ERROR
}
NSScanner似乎没有scanUnsignedLongLong方法。