首页 > 代码库 > HERD--位运算
HERD--位运算
判断一个数是否是2的次方
1 static inline int hrd_is_power_of_2(uint32_t n)
2 {
3 return n && !( n & (n - 1 ));
4 }
快速随机数
static inline uint32_t hrd_fastrand(uint64_t *seed)
{
*seed=*seed * 1103515245 + 12345;
return (uint32_t)(*seed >> 32);
}
一般种子数seed会取系统时间的模来作为参数,同样的时间种子会产生同样的序列,每次产生随机数的时间间隔相差不大的话,产生的随机数序列的第一个数值往往也相差不大,对于一些要求严格的场合不太适用。
所以为了使每次产生随机数的差别较大,随机性效果好,可以增加相邻两次产生随机数的时间间隔,比如用系统毫秒和微妙时间取一次模然后作为时间种子。
既适用于多线程多进程也适用于频繁调用随机数函数,可以得到各不相同的随机数序列。
HERD--位运算
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。