您現在的位置是:網站首頁>PHPPHP自定義多進制的方法
PHP自定義多進制的方法
宸宸2024-04-22【PHP】248人已圍觀
給大家整理一篇PHP多進制相關的編程文章,網友陳梅青根據主題投稿了本篇教程內容,涉及到php、多進制相關內容,已被560網友關注,涉獵到的知識點內容可以在下方電子書獲得。
如下所示:
/**
* 自定義多進制,根據設置的多進制字符串獲取十進制對應的多進制
* @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|"
以上就是小編爲大家帶來的PHP自定義多進制的方法全部內容了,希望大家多多支持碼辳之家~
