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

c++中rand()求得的随机值最大值怎么是32767,intrand(void)返回值应该是4字节的int的最大值吧.怎么才32767???有没有什么办法取4字节的最大... 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)。可是还要去乘,性能就降低了,不是吗。
展开
 我来答
luosiyong
推荐于2016-01-23 · TA获得超过3256个赞
知道大有可为答主
回答量:1090
采纳率:0%
帮助的人:1619万
展开全部
rand()会返回一随机数值,范围在0至RAND_MAX 间 ,RAND_MAX 要看头文件里面的定义才知道是多大。
4字节的int最大值是0x7fffffff,unsigned int最大值是0xffffffff,用十六进制表示吧。这样就明了。
#include <iostream>
using namespace std;

int main()
{
cout<<0x7fffffff<<endl;
return 0;
}
兰浅__
2015-05-18
知道答主
回答量:1
采纳率:0%
帮助的人:1241
展开全部
试试这个,(int)((double)rand() / RAND_MAX * N)(其中N为你期望的最大值)

不要问我为什么,因为我也是在网上找到的,事实证明是对的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
PE_luck
2008-10-21 · TA获得超过1304个赞
知道小有建树答主
回答量:905
采纳率:0%
帮助的人:933万
展开全部
不知道理解是不是有错误~... 随便贴一个.
如果仅仅是要取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);//发挥吧
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式