本文实例讲述了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程序设计有所帮助。