本文实例讲述了php实现36进制与10进制转换功能。分享给大家供大家参考,具体如下:
/**
* @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;
}
使用实例:
echo "get_char:".get_char(514549)."<br>";
echo "get_num:".get_num('a0zz')."<br>";
ps:这里再为大家推荐几款计算与转换工具供大家参考使用:
在线任意进制转换工具:
http://tools.jb51.net/transcoding/hexconvert
科学计算器在线使用_高级计算器在线计算:
http://tools.jb51.net/jisuanqi/jsqkexue
在线计算器_标准计算器:
http://tools.jb51.net/jisuanqi/jsq
更多关于php相关内容感兴趣的读者可查看本站专题:《php日期与时间用法总结》、《php数学运算技巧总结》、《php数组(array)操作技巧大全》、《php数据结构与算法教程》、《php程序设计算法总结》、《php正则表达式用法总结》、《php运算与运算符用法总结》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》
希望本文所述对大家php程序设计有所帮助。
评论列表:
发布于 3天前回复该评论
发布于 3天前回复该评论
发布于 3天前回复该评论
发布于 3天前回复该评论
发布于 2天前回复该评论
发布于 2天前回复该评论
发布于 2天前回复该评论
发布于 2天前回复该评论