2011-08-30 108 views
-2

有人可以向我澄清一下,为什么在运行此代码时,past2不是负面的?即使过去了。相同功能的不同结果

谢谢。

NSTimeInterval p1 = (arc4random()%600000); 
NSTimeInterval past = -p1; 
NSTimeInterval past2 = -(arc4random()%600000); 
+7

搜索随机定义... –

+0

你能澄清我们为什么要使用'arc4random( )'? – EmptyStack

+0

你是真的吗? – futureelite7

回答

2

arc4random()返回一个unsigned int(u_int32_t),所以试图将其变为负数被强迫的结果为无符号为好,这就是为什么你得到一个非常大的正数而不是负数。

如果你想在一个呼叫负随机结果,请尝试:

NSTimeInterval past2 = - (int) (arc4random()%600000);