如何在UInt64之间找到一个随机数? (迅速)

时间:2015-08-12 05:04:21

标签: ios iphone swift arc4random uint64

我无法找到一种方法来返回1到9,000,000,000,000,000之间的随机数

我使用UInt32创建了一个randomNumberBetween函数,但我只是无法使用UInt64做同样的事情。

据我所知,arc4random_uniform仅使用UInt32。但是UInt64有替代方案吗?

现在有人知道吗?

感谢您的帮助!

let min:UInt32 = 1
let max:UInt32 = UINT32_MAX

func randomNumberBetween(min:UInt32, max:UInt32) -> UInt32 {
    let randomNumber = arc4random_uniform(max - min) + min
    return randomNumber
}

randomNumberBetween(min, max)

1 个答案:

答案 0 :(得分:0)

arc4random在Swift中运行良好,但基本函数仅限于32位整数类型({5}在iPhone 5S和现代Mac上为Int为64位。这是任意类型随机数的通用函数:

func arc4random <T: IntegerLiteralConvertible> (type: T.Type) -> T {
    var r: T = 0
    arc4random_buf(&r, UInt(sizeof(T)))
    return r
}

阅读本文档我希望对您有所帮助http://www.dahuatu.com/G9wRqYlmME.html