2011-08-30 246 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);