本文实例讲述了php实现36进制与10进制转换功能。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
/**
* @desc im:十进制数转换成三十六机制数
* @param (int)$num 十进制数
* return 返回:三十六进制数
*/
function get_char( $num ) {
$num = intval ( $num );
if ( $num <= 0)
return false;
$charArr = array ( "0" , "1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" , 'A' , 'B' , 'C' , 'D' , 'E' , 'F' , 'G' , 'H' , 'I' , 'J' , 'K' , 'L' , 'M' , 'N' , 'O' , 'P' , 'Q' , 'R' , 'S' , 'T' , 'U' , 'V' , 'W' , 'X' , 'Y' , 'Z' );
$char = '' ;
do {
$key = ( $num - 1) % 36;
$char = $charArr [ $key ] . $char ;
$num = floor (( $num - $key ) / 36);
} while ( $num > 0);
return $char ;
}
/**
* @desc im:三十六进制数转换成十机制数
* @param (string)$char 三十六进制数
* return 返回:十进制数
*/
function get_num( $char ){
$array = array ( "0" , "1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" , "A" , "B" , "C" , "D" , "E" , "F" , "G" , "H" , "I" , "J" , "K" , "L" , "M" , "N" , "O" , "P" , "Q" , "R" , "S" , "T" , "U" , "V" , "W" , "X" , "Y" , "Z" );
$len = strlen ( $char );
for ( $i =0; $i < $len ; $i ++){
$index = array_search ( $char [ $i ], $array );
$sum +=( $index +1)*pow(36, $len - $i -1);
}
return $sum ;
}
|
使用实例:
1
2
|
echo "get_char:" .get_char(514549). "<br>" ;
echo "get_num:" .get_num( 'A0ZZ' ). "<br>" ;
|
希望本文所述对大家PHP程序设计有所帮助。