Какое самое большое значение переменной в iphone? - PullRequest
2 голосов
/ 28 мая 2010

Мне нужно присвоить 2,554,416,000 переменной. Какой примитив использовать, и какой класс представления объектов использовать? Спасибо.

Ответы [ 4 ]

1 голос
/ 28 мая 2010

Это может быть представлено 32-разрядным целым числом без знака (UINT_MAX составляет около 4 миллиардов). Это на самом деле то, что NSUInteger на iPhone, но если вы хотите быть очень точным в отношении ширины в битах, вы можете указать uint32_t.

1 голос
/ 28 мая 2010

Чак прав, но в ответ на «представление объекта» вы хотите, чтобы NSNumber использовался с методами unsignedInt.

NSNumber *myNum = [NSNumber numberWithUnsignedInt:2554416000];
NSUInteger myInt = [myNum unsignedIntValue];
1 голос
/ 28 мая 2010

2,554,416,000 = 0x9841,4B80 ≤ 0xFFFF, FFFF (UINT_MAX), т. Е. uint32_t (unsigned int) или int64_t (long long).

Подписанная int32_t (int) не может это представить, потому что 0x9841,4B80> 0x7FFF, FFFF (INT_MAX). Хранение в int сделает его отрицательным.

0 голосов
/ 28 мая 2010

Вы можете хранить его в обычном int, уменьшенном на 1000, если хотите, если это представляет счет, который никогда не мог бы, чтобы последние 3 цифры содержали какую-либо информацию или что-то подобное. Это был бы способ сэкономить несколько битов и, возможно, весь дополнительный интервал пространства, если это имеет значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...