DWORD sr;
int RandBit() {
if (!sr)
if (!(sr = GetTickCount())) /* 获取系统滴答数 */
sr = 1;
sr = ((((sr>>7) ^ (sr>>5) ^ (sr>>2) ^ (sr>>1) ^ sr) & 1) << 31) |
(sr >> 1);
return (sr & 1);
}
DWORD WINAPI Random () {
DWORD res = 0, loop;
for (loop = 0; loop < 32; loop++)
res = ((res<<1) | RandBit());
return res;
}

本文介绍了一个简单的随机数生成算法实现,该算法通过系统滴答数作为种子,利用位操作生成伪随机比特,并进一步生成32位的随机整数。
1万+

被折叠的 条评论
为什么被折叠?



