2012-07-29 26 views
3

如何用php以大端字節順序打包/解壓浮動塊? 我用解壓縮函數得到了這一點,但我不確定這是否會起作用。以大端字節順序浮動PHP包/解壓縮

function unpackFloat ($float) { 
    $n = unpack ('Nn'); 
    $n = $n['n']; 

    $sign = ($n >> 31); 
    $exponent = ($n >> 23) & 0xFF; 
    $fraction = $n & 0x7FFFFF; 
} 

回答

4

思考了一段時間後,我發現一個很簡單的解決方案,從一個pack('f')用途使用相反的字節順序。

unpack

unpack('fdat', strrev(substr($data, 0, 4))); 

pack

strrev(pack('f', $data));