/**
* 十进制数转换成52进制
* @param int $num
* @throws Exception
*/
public static function from10_to52($num)
{
$to = 52;
$dict="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$dict=str_split($dict);
$ret = '';
do {
$ret = $dict[bcmod($num, $to)] . $ret;
$num = bcdiv($num, $to);
} while ($num > 0);
return $ret;
}
/**
* 52进制数转换成十进制数
* @param string $str
* @throws Exception
*/
public static function from52_to10($str)
{
$from = 52;
$str = strval($str);
$dict="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$len = strlen($str);
$dec = 0;
for ($i = 0; $i < $len; $i++) {
$pos = strpos($dict, $str[$i]);
$dec = bcadd(bcmul(bcpow($from, $len - $i - 1), $pos), $dec);
}
return $dec;
}
PHP 10进制转52进制
于 2022-06-08 10:28:49 首次发布