【发布时间】:2013-02-21 05:25:48
【问题描述】:
NSNumber 可以存储的最大值是多少?
// ok
NSNumber *value = @(1 << 31);
// gives compiler error, so max NSNumber is 32-bit uint?
NSNumber *value = @(1 << 32);
【问题讨论】:
-
答案已经回答了实际问题,所以我将解释错误。
1 << 32中的1是一个 int,编译器在执行移位时使用它。由于 int 是 32 位,因此您不能将其移动 32 个位置。如果你使用@(1ULL << 32),它会起作用,因为1ULL有一个无符号长长类型。 -
谢谢,非常好的信息。
-
为什么这个问题会被否决?投反对票?
标签: objective-c max nsnumber primitive