Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中将随机字节(0-255)转换为浮点?_Php_Random_Floating Point_Byte - Fatal编程技术网

在PHP中将随机字节(0-255)转换为浮点?

在PHP中将随机字节(0-255)转换为浮点?,php,random,floating-point,byte,Php,Random,Floating Point,Byte,我正在从/dev/uradom读取随机字节,我想从/dev/uradom中生成一个随机浮点。我该怎么做?我可以用ord()将字节转换为数字,它介于0和255之间 很明显,255是1.0,127是0.5,0是0.0,但是我如何计算其余的呢?另外,我认为一个字节不足以提供很多精度?我应该为此使用多少字节?尝试简单的线性关系 $f = $r / 255.0; 其中,$r是随机字节,$f是随机浮点 这样,当$r=255时,$f为1.0,当$r=127时,$f为0.498 要得到r=127的0.5,需要

我正在从/dev/uradom读取随机字节,我想从/dev/uradom中生成一个随机浮点。我该怎么做?我可以用ord()将字节转换为数字,它介于0和255之间


很明显,255是1.0,127是0.5,0是0.0,但是我如何计算其余的呢?另外,我认为一个字节不足以提供很多精度?我应该为此使用多少字节?

尝试简单的线性关系

$f = $r / 255.0;
其中,$r是随机字节,$f是随机浮点

这样,当$r=255时,$f为1.0,当$r=127时,$f为0.498


要得到r=127的0.5,需要不同的关系。

尝试简单的线性关系

$f = $r / 255.0;
其中,$r是随机字节,$f是随机浮点

这样,当$r=255时,$f为1.0,当$r=127时,$f为0.498


要得到r=127的0.5,需要一个不同的关系。

既然您希望127为0.5,我想您希望

$float = round($byte/255,1)

既然你希望127是0.5,我想你希望

$float = round($byte/255,1)

嗯,你只是想要一个随机的数字序列吗?如果是这样,就使用


嗯,你只是想要一个随机的数字序列吗?如果是这样,就使用


如果您想获得
float
所能提供的全精度,则需要24位或三个字节:

$float = ($b1 | ($b2 << 8) | ($b3 << 16)) / (float)(1 << 24);

$float=($b1 |)($b2如果您想获得
float
所能提供的全部精度,则需要24位或三个字节:

$float = ($b1 | ($b2 << 8) | ($b3 << 16)) / (float)(1 << 24);
$float=($b1 |)($b2