php - 从 base 10 转换为 base 31(仅适用于选定字符)

标签 php encoding encode base-conversion

我想将 10 进制数转换为 31 进制数

我只想使用这些字符:23456789abcdefghjkmnpqrstuvwxyz

如您所见,排除了 5 个字符(我不需要这些):1 0 o l i

我现在拥有的功能在下面,但当然不起作用。输入 2 时输出 4。tenTo31(2) 的输出应为 2

function tenTo31($num)
{
    $out   = "";
    $alpha = "23456789abcdefghjkmnpqrstuvwxyz";

    while($num > 30)
    {
        $r = $num % 31;
        $num = floor($num / 31) - 1;
        $out = $alpha[$r] . $out;
    }

    return $alpha[$num] . $out;
}

关于如何使这项工作有任何想法吗?

最佳答案

这是对你想要什么的盲目猜测:

$alpha = "yz23456789abcdefghjkmnpqrstuvwx";

关于php - 从 base 10 转换为 base 31(仅适用于选定字符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1592945/

相关文章:

javascript - javascript字符串需要 "escape"字符 "<"和 ">"吗?

php - 在扩展 LaravelValidator 的自定义 Laravel Validator 类中进行依赖注入(inject)

php - 同步 PHP Git 项目的 MySQL 结构

Linux find重新编码所有文件到子目录

go - 在 golang 中将字节数组更改为结构

iphone - 编码解码类错误的 int 属性

从 Web 浏览器使用 php exec 执行用于签署 pdf 文件的 Java 程序失败

php - Symfony2 查询生成器添加自定义顺序查询

python - 错误的编码 - PhpMyAdmin/MySql

Python opencv 视频编写器问题 : not compressing/writing