本文主要是介绍comparison between rand() and arc4random(),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天在iPhone开发过程中,遇到一个需要生成随机数的问题。很快rand()和arc4random()都进入了考虑范围,但选择的时候感觉有点为难。之前的时候可能没有思索就随便挑一个用了,不过这次良心发现不能太随便了。rand() 和arc4random()到底应该如何取舍呢?调查了下,发现下文很好地解答了这个问题。 在iPhone中有几个内嵌的随机数发生器,很多人的第一反应可能就是在调用如下函数后使用rand(): srandom(time(NULL));
通过arc4random() 获取0到x-1之间的整数的代码如下: int value = arc4random() % x;
int value = (arc4random() % x) + 1;
最后如果想生成一个浮点数,可以在项目中定义如下宏: #define ARC4RANDOM_MAX 0x100000000 然后就可以使用arc4random() 来获取0到100之间浮点数了(精度是rand()的两倍),代码如下: double val = floorf(((double)arc4random() / ARC4RANDOM_MAX) * 100.0f); |
这篇关于comparison between rand() and arc4random()的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!