php 10进制转62进制,可用于短网址生成
2024-08-27 11:38:33
<?php /**
* 十进制数转换成62进制
*
* @param integer $num
* @return string
*/
function from10_to62($num) {
$to = 62;
$dict = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$ret = '';
do {
$ret = $dict[bcmod($num, $to)] . $ret;
$num = bcdiv($num, $to);
} while ($num > 0);
return $ret;
} /**
* 62进制数转换成十进制数
*
* @param string $num
* @return string
*/
function from62_to10($num) {
$from = 62;
$num = strval($num);
$dict = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$len = strlen($num);
$dec = 0;
for($i = 0; $i < $len; $i++) {
$pos = strpos($dict, $num[$i]);
$dec = bcadd(bcmul(bcpow($from, $len - $i - 1), $pos), $dec);
}
return $dec;
}
最新文章
- Python 学习小结
- sqlalchemy(二)高级用法
- Asp.net attributes collection
- LPTHW 结束了
- php文件下载
- sprintf的缓冲区溢出问题
- 一个可能是pip的一个BUG
- SQL Server调优系列进阶篇 - 深入剖析统计信息
- nginx的upstream目前支持5种方式的分配
- Python之路【目录】
- 为Qemu aarch32开发板添加sd卡
- nginx 默认访问index.php
- Go 程序执行顺序
- 遇到问题---java---安装新版本jdk后Failed reading value of registry key
- Java中看今天是星期几,礼拜几
- 11 MySQL--Navicat与pymysql模块
- 基础系列(4)—— C#装箱和拆箱
- Find Min In Rotated Sorted Array2,包含重复数字的反转序列找最小值。
- Linux自学系列 -- 常用指令的使用
- Atcoder CODE FESTIVAL 2017 qual B E - Popping Balls 组合计数