note 83716 deleted from language.types.float by danbrown
| From: | danbrown@php.net | Date: | Sat, 02 Feb 2013 15:11:41 +0000 |
| Subject: | note 83716 deleted from language.types.float by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-193499@lists.php.net to get a copy of this message | ||
Note Submitter: an dot kovacs at gmail dot com
----
Converting IEEE754 binary representation to php float:
function bin2float ($bin) {
if((ord($bin[0])>>7)==0) $sign=1;
else $sign=-1;
if((ord($bin[0])>>6)%2==1) $exponent=1;
else $exponent=-127;
$exponent+=(ord($bin[0])%64)*2;
$exponent+=ord($bin[1])>>7;
$base=1.0;
for($k=1;$k<8;$k++) {
$base+=((ord($bin[1])>>(7-$k))%2)*pow(0.5,$k);
}
for($k=0;$k<8;$k++) {
$base+=((ord($bin[2])>>(7-$k))%2)*pow(0.5,$k+8);
}
for($k=0;$k<8;$k++) {
$base+=((ord($bin[3])>>(7-$k))%2)*pow(0.5,$k+16);
}
$float=(float)$sign*pow(2,$exponent)*$base;
return $float;
}