bytes convert to float (php)

2019-01-12 07:53发布

How can I convert from bytes to float in php? Like in Java

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

3条回答
甜甜的少女心
2楼-- · 2019-01-12 08:06

There may be a more direct way, but here you go:

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

This is, of course, machine dependent, but I don't know of any machine running PHP that doesn't use IEEE 754 floats.

查看更多
Rolldiameter
3楼-- · 2019-01-12 08:07

I don't think php has bytes, does it? When you assign a number to a variable you'll get an variable with a number type

$a = 10; // integer
$f = 1.0; // double
$b = $a + $f; // $b is double
查看更多
贼婆χ
4楼-- · 2019-01-12 08:16

If I'm understanding you correctly, you want to take a raw 32- or 64-bit "integer" value, and force that set of bits to treated as a floating point number instead?

Try the 'pack' and 'unpack' functions

查看更多
登录 后发表回答