码迷,mamicode.com
首页 > 其他好文 > 详细

Base62

时间:2014-05-24 02:46:45      阅读:319      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   c   code   java   

bubuko.com,布布扣
<?php
/**
 * Base62 将整型转为62进制数字(有大数问题)
 * @author Sundj
 * @since 2014.04.07
 */
class Base62 {
    
    const BASE = 62;
    
    static $baseChars = ‘0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ‘;
    
    
    public function encode($number) {
        $output = ‘‘;
        
        do {
            $reminder = $number % Base62::BASE;
            $output = Base62::$baseChars[$reminder] . $output;
            $number = ($number - $reminder) / Base62::BASE;
        } while($number > 0);
        
        return $output;
    }
    
    public function decode($input) {
        $length = strlen($input);
        
        $number = 0;
        $baseChars = array_flip(str_split(Base62::$baseChars));
        for($i = 0; $i < $length; ++$i) {
            $number += $baseChars[$input[$i]] * pow(Base62::BASE, $length - $i - 1);
        }
        return number_format($number, 0, ‘‘, ‘‘);
    }
}
bubuko.com,布布扣

 

Base62,布布扣,bubuko.com

Base62

标签:style   class   blog   c   code   java   

原文地址:http://www.cnblogs.com/Sundj/p/3736838.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!