note 87039 modified in function.bindec by danbrown

From: Date: Sun, 16 Nov 2008 17:37:07 +0000
Subject: note 87039 modified in function.bindec by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-146598@lists.php.net to get a copy of this message
for converting fractions : eg : 1001.1101 <?php function BinaryToDecimal($binary){ $binary=trim($binary); if (strstr($binary,'.')){ $split=explode('.',$binary); $integer=$split[0]; $fraction=$split[1]; $digits=str_split($fraction); $num=sizeof($digits); for ($i=1; $i<=$num;$i++){ if ($digits[$i-1]>1){ echo '<script>alert("Enter Binary Digits Only {0,1}\n \n eg: 11001 or 11001.011");history.go(-1)</script> '; } $exponent=pow(2,-$i); $fraction_result+=$digits[$i-1]*$exponent; } }else{ $integer=$binary; } $splits=str_split($integer); $num=sizeof($splits)-1; $i=$num; foreach($splits as $digits){ if ($digits>1){ echo '<script>alert("Enter Binary Digits Only {0,1}\n \n eg: 11001 or 11001.011");history.go(-1)</script> '; } $exponent=pow(2,$i); $integer_result+=$digits*$exponent; $i--; } if($fraction_result){ $result=$integer_result+$fraction_result; }else { $result=$integer_result; } return $result ; } ?> --was-- for converting fractions : eg : 1001.1101 function BinaryToDecimal($binary){ $binary=trim($binary); if (strstr($binary,'.')){ $split=explode('.',$binary); $integer=$split[0]; $fraction=$split[1]; $digits=str_split($fraction); $num=sizeof($digits); for ($i=1; $i<=$num;$i++){ if ($digits[$i-1]>1){ echo '<script>alert("Enter Binary Digits Only {0,1}\n \n eg: 11001 or 11001.011");history.go(-1)</script> '; } $exponent=pow(2,-$i); $fraction_result+=$digits[$i-1]*$exponent; } }else{ $integer=$binary; } $splits=str_split($integer); $num=sizeof($splits)-1; $i=$num; foreach($splits as $digits){ if ($digits>1){ echo '<script>alert("Enter Binary Digits Only {0,1}\n \n eg: 11001 or 11001.011");history.go(-1)</script> '; } $exponent=pow(2,$i); $integer_result+=$digits*$exponent; $i--; } if($fraction_result){ $result=$integer_result+$fraction_result; }else { $result=$integer_result; } return $result ; } http://php.net/manual/en/function.bindec.php

« previous php.notes (#146598) next »