PHP取进制余数
时间:2021-07-01 10:21:17
帮助过:14人阅读
我想知道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
|