Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa NSInteger的最大值是多少?_Cocoa_Nsinteger - Fatal编程技术网

Cocoa NSInteger的最大值是多少?

Cocoa NSInteger的最大值是多少?,cocoa,nsinteger,Cocoa,Nsinteger,我需要将NSInteger的最大值存储到NSInteger中?正确的语法是什么 谢谢 NSInteger的最大值为。NSInteger的最大值为NSIntegerMax (from)我花了一点时间才意识到为什么在使用NSInteger时从NSIntegerMax获得了不同的值 NSUInteger的最大值是NSUIntegerMax (另从)对于32位和64位,有两种约定: a) ILP32 b) LP64 32位运行时使用称为ILP32的约定,其中整数、长整数和指针是32位量。64位运行时使用

我需要将NSInteger的最大值存储到NSInteger中?正确的语法是什么


谢谢

NSInteger的最大值为。

NSInteger的最大值为
NSIntegerMax


(from)

我花了一点时间才意识到为什么在使用NSInteger时从NSIntegerMax获得了不同的值

NSUInteger的最大值是NSUIntegerMax


(另从)

对于32位和64位,有两种约定: a) ILP32 b) LP64

32位运行时使用称为ILP32的约定,其中整数、长整数和指针是32位量。64位运行时使用LP64约定;整数是32位量,长整数和指针是64位量。这些约定与在OS X上运行的应用程序的ABI相匹配(类似地,Cocoa Touch约定与Cocoa中使用的数据类型相匹配),使得在两个操作系统之间编写可互操作的代码变得容易

表1-1 Objective-C代码中常用的所有整数类型。每个条目都包括数据类型的大小及其在内存中的预期对齐方式。突出显示的表格条目表示LP64约定与ILP32约定不同的地方。这些大小差异指示在为64位运行时编译代码时代码行为发生更改的位置。编译器在为64位运行时编译时定义LP64


对于64位,NSInteger的最大范围为:LONG_max:9223372036854775807

@Mark:在当前实施中。未来的实现可能会选择一个不同的值,但我们希望不会。@Cfr:谢谢你的链接,但这个数字是不对的。在32位系统上,NSInteger不能表示4294967295(您给出的数字是无符号32位整数的最大值),而在64位系统上,它可以比这个值高得多。哦,对不起,实际上我在搜索
nsuigermax
/
ULONG_MAX
,找到了这个答案
NSIntegerMax
在32位系统上是
4294967295
NSIntegerMax
在32位系统上是
2147483647
。有时,该值本身很有用,例如,当您想了解是否有可能使键入为整数的ID溢出时。如果有人正在查找min,这很好,正如您所料,
NSIntegerMin