PHP自定义多进制的方法
如下所示:
/**
*自定义多进制,根据设置的多进制字符串获取十进制对应的多进制
*@param$str自定义的多进制字符串
*@param$num十进制数字
*@return$xbin对应的多进制数字
*/
functionxbin($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|"
以上就是小编为大家带来的PHP自定义多进制的方法全部内容了,希望大家多多支持毛票票~