十进制二进制之间的转化 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";

 

转载于:https://www.cnblogs.com/codelife1988/p/4176683.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值