阅读:2629回复:3
Windows CE下随机数生成函数
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; } |
|
沙发#
发布于:2007-10-15 17:17
谢谢分享
|
|
|
板凳#
发布于:2008-01-09 11:42
谢谢楼主的分享!收藏了!
|
|
地板#
发布于:2008-01-09 15:16
随便找一个libc的实现就可以了 里边有random函数的源代码 copy过来就可以了
但是你这个随机性不高,使用的那个GetTickCount每次reboot都会设置为0,我建议通过采集ADC或是直接访问CPU的timer寄存器来得到一个随机数的种子 |
|