1.整数转换成16进制:

整数转换成 16进制则有相应的函数 dechex,可以直接将数值转成10进制,如int(86)转成16进制的dechex(56);

类似:

(1).十进制转二进制 decbin() 函数,如下实例 echo decbin(12);  //输出 1100 echo decbin(26); 
(2).十进制转八进制 decoct() 函数 echo decoct(15);  //输出 17 echo decoct(264)
(3).十进制转十六进制 dechex() 函数 echo dechex(10); //输出 a; 十六进制转十进制函数 hexdec
※16进制以后就没有集成函数,需要自定义函数了。

2.整数转换成(32、62)进制数,这里以62进制为例:

/**
 * 整数转指定的进制数
 *
 * @param integer $num 数值
 * @param integer $to 进制数类型
 * @return string
 */
function integer_to_dechex($num, $to = 62) {
    $dict = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $ret = '';
    do {
        // bcmod取得高精确度数字的余数
        $ret = $dict[bcmod($num, $to)] . $ret;
        // bcdiv将二个高精确度数字相除
        $num = bcdiv($num, $to);
    } while ($num > 0);
    return $ret;
}

/**
 * 指定的进制数转整数
 *
 * @param string $string 字符串
 * @param integer $from 进制数类型
 * @return int|string
 */
function integer_from_dechex($string, $from = 62) {
    $string = strval($string);
    $dict = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $len = strlen($string);
    $dec = 0;
    for($i = 0; $i < $len; $i++) {
        $pos = strpos($dict, $string[$i]);
        $dec = bcadd(bcmul(bcpow($from, $len - $i - 1), $pos), $dec);
    }
    return $dec;
}