Разбор 64-разрядного целого числа без знака на iOS - PullRequest
4 голосов
/ 21 октября 2010

У меня очень большое целое число без знака в NSString. Это может быть большим до 2 ^ 64. Существуют ли функции / классы, анализирующие это?

Как я знаю, это длинное беззнаковое длинное значение, но, трудно понять, какой метод мне следует использовать для его анализа.

Ответы [ 3 ]

9 голосов
/ 21 октября 2010

Возможно, это не самый красивый ответ, но вы должны быть в состоянии сделать что-то вроде этого:

#include <stdlib.h>
...
unsigned long long parsedValue = strtoull([yourString UTF8String], NULL, 0);

У кого-то еще может быть более какао-способный способ сделать это.

1 голос
/ 24 февраля 2013

Это старый, но вот немного более какао-вариант ответа Стивена Канона (правильный):

#import <stdlib.h>

@implementation NSString (MyHelpers)
    - (unsigned long long)unsignedLongLongValue {
        return strtoull([self UTF8String], NULL, 0);
    }
@end

Теперь все строки будут реагировать на селектор unsignedLongLongValue.

0 голосов
/ 21 октября 2010

Это может сработать, хотя оно может доходить только до 2 ^ 63 - 1 :

NSScanner *scanner = [NSScanner scannerWithString:numericString];
long long valueFromString;
if(![scanner scanLongLong:&valueFromString]) {
    //ERROR
}

Для NSScanner не существует метода scanUnsignedLongLong.

...