html生成1-32位随机数,如何生成一个32位的随机数 | 求索阁
CStringA CreateHex(int max)
{
CStringA precision;
precision.Format("%x",max);
int size = precision.GetLength();
int num_align = size%4; // 按多少位对齐
if(num_align <=4)
num_align = 4;
else if (num_align <=8) // 这里我假设最大数32位,如果你的max数够大,还需要考虑更大的对齐
num_align = 8; // 32位最大数换算10进制是4294967295,16进制是FFFFFFFF(8位对齐)
int num_for = 32/num_align; // 循环生成
CStringA out_put;
srand(GetTickCount()); // 设置种子,保证每次都生成不一样的随机数
for (int i=0;i
{
int num = rand()%max; // 0~max的随机数(不包括max本身)
out_put.AppendFormat("%0*x",num_align,num); // 不够对齐位数的添加0对齐
Sleep(2); // 保证随机数不重复
}
return out_put;
}
测试:
int _tmain(int argc, _TCHAR* argv[])
{
int fmax = 800;
typedef set SetArray;
SetArray ArrayHex;
for (int i =0;i<1000;i++)
{
CStringA _hex = CreateHex(fmax).GetBuffer();
printf("%s\n",_hex);
if (ArrayHex.find(_hex) != ArrayHex.end())
assert(0); // 循环1000次若有重复,则断言
ArrayHex.insert(_hex);
}
return TRUE;
}
相关阅读
总结
以上是生活随笔为你收集整理的html生成1-32位随机数,如何生成一个32位的随机数 | 求索阁的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: [转帖]好技术领导,差技术领导
- 下一篇: 常用计算机office操作知识,计算机基