байты конвертируются в float (php) - PullRequest
2 голосов
/ 12 апреля 2010

Как я могу конвертировать из байтов, чтобы плавать в php? Как в Java

int i = (byte3 & 0xff) << 24 | (byte2 & 0xff) << 16 | (byte1 & 0xff) << 8 | byte0 & 0xff; 
Float.intBitsToFloat(i);

Ответы [ 3 ]

5 голосов
/ 13 апреля 2010

Там может быть более прямой путь, но здесь вы идете:

<?php
var_dump(unpack('f', pack('i', 1059760811)));
?>

Это, конечно, зависит от машины, но я не знаю ни одной машины с PHP, которая бы не использовала плавающие объекты IEEE 754.

0 голосов
/ 13 апреля 2010

Если я правильно вас понимаю, вы хотите взять необработанное 32- или 64-разрядное "целое" значение и вместо этого принудительно использовать этот набор битов как число с плавающей запятой?

Попробуйте функции pack и unpack

0 голосов
/ 12 апреля 2010

Я не думаю, что у php есть байты, не так ли? Когда вы присваиваете номер переменной, вы получите переменную с типом числа

$a = 10; // integer
$f = 1.0; // double
$b = $a + $f; // $b is double
...