读书人

问一下生成long 型的随机数如何写

发布时间: 2012-03-09 21:42:55 作者: rapoo

问一下生成long 型的随机数怎么写?
呵呵,
srand( (unsigned)time( NULL ) );
rand();
生成的是 int 型的吧。
怎么生成 long 型的呢?

[解决办法]
我用的是VC2003,在我的机器上,long long型和int倒是不一样的,前者64位,后者32位,可以做个实验:

#include <cstdlib>
#include <ctime>
#include <limits>
#include <iostream>
using namespace std;

const int INT_NUM= (sizeof(long long) + sizeof(int) - 1) / sizeof(int);
union longlong_random {
intirand[INT_NUM];
long longllrand;
};

void main()
{
srand((unsigned int)time(0));
longlong_random lr;
for(int i = 0; i < INT_NUM; i++) {
lr.irand[i] = rand();
}
cout < < lr.llrand < < endl;
}

你可以把它改造成一个模板,产生任意整数类型的随机数,呵呵。

读书人网 >C++

热点推荐