我发现rgba的浮点随机数生成器:
我尝试编译这个函数,总是得到
http://rgba.org/articles/sfrand/sfrand.htm
说明很清晰,代码很简单。但有一个问题:我无法弄清楚随机位是从哪里来的。以下是代码片段:static unsigned int mirand = 1;
float sfrand( void )
{
unsigned int a;
mirand *= 16807;
a = (mirand&0x007fffff) | 0x40000000;
return( *((float*)&a) - 3.0f );
}
我尝试编译这个函数,总是得到
-0.995993
的结果,如果mirand
最初为1
,那么这是有道理的。 我错过了什么,或者mirand
只是种子?