频道栏目
首页 > 资讯 > Java > 正文

获取用于短网址的,62进制的数。

13-04-11        来源:[db:作者]  
收藏   我要投稿
[php]
<?php 
//制造62进制的数  
function make62num($num){ 
    if(57731386986<$num) return $num.''; 
    $num_arr  = array(56800235584,916132832,14776336,238328,3844,62); 
    $str = '0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'; 
     
    $num_str = ''; 
    foreach($num_arr as $n){ 
        if($num>$n) 
        { 
            $num_idx = intval($num/$n); 
            $num = $num % $n; 
            $num_str.=$str[$num_idx]; 
        }else if($num_str!='') $num_str.='0'; 
    } 
    return $num_str.$str[$num]; 

//还原62进制的数  
function get62num($num){ 
    $str = '0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'; 
    $len = strlen($num); 
    $rtn = 0; 
    while($len>0){ 
        $cur = substr($num,0,1); 
        $idx = strpos($str, $cur); 
        $rtn += pow(62,$len-1)*$idx; 
        $num = substr($num,1); 
        $len = strlen($num); 
    } 
    return $rtn; 

for($i=0;$i<50;$i++){ 
    $num = rand(1,57731386986); 
    $num1 = make62num($num); 
     
    $rnum = get62num($num1); 
    echo $num.'=>'.$num1.chr(10).$rnum.chr(10).'--------------'.chr(10); 

相关TAG标签
上一篇:整数划分
下一篇:Java数据结构(链表篇)
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站