十进制二进制之间的转化 PHP算法

 

[ 十进制转二进制 ]

 1 function test($var){
 2 
 3         $func = function($i){
 4                 if($i < 2){
 5                         return $i;
 6                 }
 7 
 8                 $return['int'] = intval( $i / 2 );
 9                 $return['remain'] = $i % 2;
10 
11                 return $return;
12         };
13 
14         $arr = array();
15 
16         while($var > 1){
17                 $result = $func($var);
18 
19                 $var = $result['int'];
20                 array_unshift($arr,$result['remain']);
21         }
22 
23         $var && array_unshift($arr,$var);
24 
25         return implode('',$arr);
26 }
27 
28 $int = 778988;
29 
30 echo test($int)."\r\n";

 

 

[ 二进制转十进制 ]

 1 $str = '10111110001011101100';
 2 
 3 function test($var){
 4         $len = strlen($var);
 5 
 6         $return = 0;
 7 
 8         for($pos=0;$pos<$len;$pos++){
 9 
10                 $key = $pos == 0 ? 1 : $key * 2;
11 
12                 $int = intval(substr($var,$ken-$pos-1,1));
13 
14                 $int >0 && $return += $key;
15 
16         }
17 
18         return $return;
19 }
20 
21 echo test($str)."\r\n";

 

posted @ 2014-12-21 16:04  今夜打老虎  阅读(1125)  评论(0编辑  收藏  举报