PHP取进制余数函数代码

2015-01-24信息快讯网

我想知道21712341byte在K位上是多少,M位上、G位呢?这相当于进制转换的问题。只不过现在要转换的进制是1024

 
//取进制位上的数值 
function getRemainder($num, $bin, $pos, &$result = 0){ 
//author lianq.net 
//$num 数值,十进制 
//$bin 要转换的进制 
//$pos 位数 
$real_len = log($num, $bin);//对数,求原值长度 
$floor_len = floor($real_len);//舍去求整 
$base = pow($bin, $pos-1);//基数 
$divisor = pow($bin,$pos);//除数 
if($num >= $divisor){ 
$new_num = $num % pow($bin, $floor_len); 
getRemainder($new_num, $bin, $pos, $result); 
}else{ 
$result = floor($num / $base); 
} 
return $result; 
} 

//比如,数值16转换为9进制时,它的第一位上的数值是多少? 
$a = getRemainder(16,9, 1); 
echo $a;//输出7 
©2014-2024 dbsqp.com