c – 生成随机长数

前端之家收集整理的这篇文章主要介绍了c – 生成随机长数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道要生成随机长数,我在 Java中执行以下步骤:
Random r = new Random();
return r.nextLong();

在C中,这个代码相当于什么?像这样?

return (long)rand();

解决方法

< cstdlib>提供int rand().您可能需要查看手册页.如果long大于系统上的int,则可以调用rand()两次并将第一个值放在高位字中.
#include <cstdlib>

long lrand()
{
    if (sizeof(int) < sizeof(long))
        return (static_cast<long>(rand()) << (sizeof(int) * 8)) |
               rand();

    return rand();
}

(long不可能与int的大小相同或者是int的两倍,所以如果理论上不完美则这是实用的)

检查你的文档rand()虽然.它不是一个伟大的发电机,但对大多数事情都足够好.您将要调用srand()来初始化随机生成系统.其他人评论说Windows不会返回sizeof(int)随机位,所以你可能需要调整上面的内容.

猜你在找的C&C++相关文章