note 88849 modified in language.types.float by danbrown

From: Date: Wed, 11 Feb 2009 03:24:34 +0000
Subject: note 88849 modified in language.types.float by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-150465@lists.php.net to get a copy of this message
My BIN to FLOAT (IEEE754), the first one doesn't work for me: <?php function binToFloat($bin) { if(strlen($bin) > 32) { return false; } else if(strlen($bin) < 32) { $bin = str_repeat('0', (32 - strlen($bin))) . $bin; } $sign = 1; if(intval($bin[0]) == 1) { $sign = -1; } $binExponent = substr($bin, 1, 8); $exponent = -127; for($i = 0; $i < 8; $i++) { $exponent += (intval($binExponent[7 - $i]) * pow(2, $i)); } $binBase = substr($bin, 9); $base = 1.0; for($x = 0; $x < 23; $x++) { $base += (intval($binBase[$x]) * pow(0.5, ($x + 1))); } $float = (float) $sign * pow(2, $exponent) * $base; return $float; } ?> --was-- My BIN to FLOAT (IEEE754), the first one doesn't work for me: function binToFloat($bin) { if(strlen($bin) > 32) { return false; } else if(strlen($bin) < 32) { $bin = str_repeat('0', (32 - strlen($bin))) . $bin; } $sign = 1; if(intval($bin[0]) == 1) { $sign = -1; } $binExponent = substr($bin, 1, 8); $exponent = -127; for($i = 0; $i < 8; $i++) { $exponent += (intval($binExponent[7 - $i]) * pow(2, $i)); } $binBase = substr($bin, 9); $base = 1.0; for($x = 0; $x < 23; $x++) { $base += (intval($binBase[$x]) * pow(0.5, ($x + 1))); } $float = (float) $sign * pow(2, $exponent) * $base; return $float; } http://php.net/manual/en/language.types.float.php

« previous php.notes (#150465) next »