$n = unpack 'N', pack 'B32', '01000010001111000000000000000000';; ( $s, $c, $e ) = ( $n & 0x8000_0000, (( $n >> 24 ) & 0x7f) - 64, (($n & 0x00ffffff) / 0xffffff) * 16 );; print $s, $c, $e;; 0 2 3.75000022351743 $num = ($s? -1 : 1 ) * $e * 10**$c;; print $num;;