Potrzebuję przechowywać maksymalną wartość NSInteger w NSInteger? Jaka jest prawidłowa składnia, aby to zrobić?Jaka jest maksymalna wartość NSIntegera?
Dzięki.
Potrzebuję przechowywać maksymalną wartość NSInteger w NSInteger? Jaka jest prawidłowa składnia, aby to zrobić?Jaka jest maksymalna wartość NSIntegera?
Dzięki.
Maksymalna wartość NSInteger to NSIntegerMax.
Maksymalna wartość dla NSInteger jest NSIntegerMax
Zajęło mi trochę czasu dla mnie, aby uświadomić sobie, dlaczego byłem coraz inną wartość od NSIntegerMax podczas korzystania NSUInteger !!
a maksymalna dla NSUInteger jest NSUIntegerMax
dla 32-bitowych & 64 bitów, nie ma dwie konwencje: a) ILP32 b) LP64
32-bitowe środowisko wykonawcze używa konwencji zwanej ILP32, w której liczby całkowite, długie liczby całkowite i wskaźniki są wielkościami 32-bitowymi. 64-bitowe środowisko wykonawcze używa konwencji LP64; liczby całkowite są wielkościami 32-bitowymi, a długie liczby całkowite i wskaźniki są wielkościami 64-bitowymi. Te konwencje pasują do ABI dla aplikacji działających na OS X (podobnie konwencje Cocoa Touch pasują do typów danych używanych w Cocoa), co ułatwia pisanie interoperacyjnego kodu między dwoma systemami operacyjnymi.
Tabela 1-1 wszystkich typów całkowitych powszechnie używanych w kodzie celu C. Każda pozycja zawiera rozmiar typu danych i oczekiwane wyrównanie w pamięci. Wyróżnione wpisy w tabeli wskazują miejsca, w których konwencja LP64 różni się od konwencji ILP32. Te różnice wielkości wskazują miejsca, w których zmienia się zachowanie twojego kodu podczas kompilacji dla 64-bitowego środowiska wykonawczego. Kompilator definiuje makro LP64 podczas kompilowania dla 64-bitowego środowiska wykonawczego.
do 64 bitów max zakresu dla NSInteger jest: LONG_MAX: 9223372036854775807
+1 i wartość NSIntegerMax jest LONG_MAX. –
@ Mark: on * current * implementations. Przyszłe wdrożenia mogłyby wyłonić inną wartość, choć nie ma takiej nadziei. –
@Cfr: Dzięki za link, ale ta liczba jest nieprawidłowa. W systemach 32-bitowych NSInteger nie może reprezentować 4294967295 (podana liczba jest maksymalną wartością ** niepodpisanej ** 32-bitowej liczby całkowitej), a w systemach 64-bitowych może być dużo wyższa. – Chuck