想产生一系列的32位字长的unsigned long 随机数,但是所产生的数字大多是30位或29位字长。怎么样才能产生理想的32位随机数?谢了。我的部分程序如下;
void main()
{
unsigned long randzahl;
int len,lentemp;
char buf[32];
scand(time(NULL));
len=126;
lentemp=0;
while(len>lentemp)
{lentemp=lentemp+32;
randzahl=(unsigned long( rand()))|(unsigned long( rand())<<16);
ltoa(randzahl,buf,2);
cout<<strlen(buf)<<endl; }
}
參考答案:32位字长不是随机数的位数是32位而是宽度在32bit范围内,不要错会了意思。rand()返回的类型本事就是32位了,楼主不用自己再处理了。
楼主要是想生成一个32位的随机整数的话,不如取0-9随机整数,取32次转化成字符串好了。