c++中rand()求得的随机值最大值的问题

来源:百度知道 编辑:UC知道 时间:2024/06/15 17:24:25
c++中rand()求得的随机值最大值怎么是32767,int rand(void)返回值应该是4字节的int的最大值吧.怎么才32767???
有没有什么办法取4字节的最大值....???
两位,先谢谢!
对 luosiyong:你说的,4字节的int最大值是0x7fffffff,unsigned int最大值是0xffffffff 。不错。可是rand()返回的只有0~32767
对 PE_luck: (0~32767)*22222 当然会很大啦(0~32767*22222)。可是还要去乘,性能就降低了,不是吗。

rand()会返回一随机数值,范围在0至RAND_MAX 间 ,RAND_MAX 要看头文件里面的定义才知道是多大。
4字节的int最大值是0x7fffffff,unsigned int最大值是0xffffffff,用十六进制表示吧。这样就明了。
#include <iostream>
using namespace std;

int main()
{
cout<<0x7fffffff<<endl;
return 0;
}

不知道理解是不是有错误~... 随便贴一个.
如果仅仅是要取rand的返回值就看它的定义~

#include <stdlib.h>
#include <stdio.h>

#include <time.h>

void main()
{

srand((unsigned) time(NULL));
for (int i=0;i<10;i++) //测试10次
{
printf("%d\n",rand()*22222);//发挥吧
}
}

试试这个,(int)((double)rand() / RAND_MAX * N)(其中N为你期望的最大值)

不要问我为什么,因为我也是在网上找到的,事实证明是对的!