如何在c ++中生成随机32位整数

时间:2014-04-04 04:05:35

标签: c++ random

我的理解是RAND_MAX依赖于机器的架构。如果机器是32位,那么rand()只会生成高达4byte的内容。如何在64位机器上使用rand()生成32位随机整数?

另外,如果我想在以后使用rand()生成数十亿个随机整数,我是否总是需要srand()?

2 个答案:

答案 0 :(得分:1)

严重阻止使用rand()进行黑客攻击,因为在许多情况下可能会导致随机问题。

c ++ 11 <random>标题定义了生成任何类型的高质量随机数所需的所有工具,包括任意长度的整数,浮点等......

我建议观看此内容:https://channel9.msdn.com/Events/GoingNative/2013/rand-Considered-Harmful

答案 1 :(得分:-1)

由于你已经使用了rand(),你可能不必担心这段时间,所以你可以掩盖高位。

一般情况下,您应该在程序顶部执行srand(time(NULL))之类的操作。否则,每次运行程序时,您将生成相同的十亿个随机数序列。