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操作知识,计算机基