我需要为变量分配2,554,416,000。要使用的原语是什么,以及要使用的对象表示类是什么?感谢。
答案 0 :(得分:1)
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
中会使其成为负面。
答案 1 :(得分:1)
这可以用32位无符号整数表示(UINT_MAX约为40亿)。这实际上就是NSUInteger在iPhone上的含义,但是如果你想对位宽非常具体,可以指定一个uint32_t
。
答案 2 :(得分:1)
Chuck是对的,但是在回答“对象表示”时,您希望NSNumber
与unsignedInt
方法一起使用。
NSNumber *myNum = [NSNumber numberWithUnsignedInt:2554416000];
NSUInteger myInt = [myNum unsignedIntValue];
答案 3 :(得分:0)
如果你想要的话,你可以将它存储在按1000缩小的常规int中,如果这表示一个得分,它可能永远不会让底部的3位数字保存任何信息或类似的东西。如果重要的话,这将是一种节省一些比特以及可能整个额外空间的方法。