PHP自定义多进制的方法
如下所示:
/**
 * 自定义多进制,根据设置的多进制字符串获取十进制对应的多进制
 * @param $str 自定义的多进制字符串
 * @param $num 十进制数字
 * @return $xbin 对应的多进制数字
 */
function xbin($str, $num){
  $num = floatval($num);
  $x = strlen($str);
  $arr = str_split($str);
  $digit = fmod($num, $x);
  $xbin = isset($arr[$digit]) ? $arr[$digit] : null;
  $pre_digit = floor($num / $x);
  if($pre_digit >= 1){
    $pre_digit = xbin($str, $pre_digit);
    return $pre_digit.$xbin;
  }
  return $xbin;
}
// 测试8进制
$str = '01234567';
$a = xbin($str, 9);
$b = decoct(9);
dump($a); // string(2) "11"
dump($b); // string(2) "11"
// 测试16进制
$str = '0123456789abcdef';
$a = xbin($str, 31);
$b = dechex(31);
dump($a); // string(2) "1f"
dump($b); // string(2) "1f"
// 自定义30进制
$str = '0123456789abcdefghijklmnopqrst';
$a = xbin($str, 59);
dump($a); // string(2) "1t"
// 自定义92进制
$str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`~!@#$%^&*()-=[];\',./{}:"<>?\|';
$a = xbin($str, 183);
dump($a); // string(2) "1|" 相关推荐
  herohope    2020-06-10  
   sddfsAv    2020-04-11  
   渴望就奋力追寻    2020-01-28  
   风吹夏天    2020-01-10  
   tterminator    2014-03-13  
   86417618    2012-05-28  
   xiongxu    2019-06-12  
   Poem    2011-09-26  
   arctan0    2016-03-09  
   人亦有言进退维谷    2010-11-16  
   把握自己    2016-06-26  
   jling    2019-06-28  
   lbcmail    2019-06-28  
   ifconfig    2016-03-22  
   wufan0    2019-06-21  
   ReDisaster    2019-06-21  
 