arc4random()在iOS中给出负数

时间:2016-04-06 09:32:51

标签: ios objective-c arc4random

有时 arc4random() 也会在目标C中给出负数。

我的代码如下:

尝试1:

long ii = arc4random();

尝试2:

int i = arc4random();

我怎样才能获得积极的随机数?

谢谢,

2 个答案:

答案 0 :(得分:4)

不,它总是正数,因为它返回无符号的32位整数(manpage):

u_int32_t arc4random(void);

您将其视为有符号整数,这是不正确的。

答案 1 :(得分:0)

您应该使用arc4random_uniform()功能。这是最常用的随机函数。

arc4random_uniform()功能

  

返回介于0和插入参数减1之间的随机数。   例如,arc4random_uniform(3)可能返回0,1或2但不返回3.

示例

u_int32_t randomPositiveNo = arc4random_uniform(5) + 1; //to get the range 1 - 5