2/8/16 转10进制
2016-01-18 15:27
267 查看
<?php /* * 二进制、八进制、十六进制转十进制 * @params $data 将该二进制数转10进制 $decimal 指定传进来的是几进制的数 */ function tDecimal($data, $decimal){ //如果为空直接返回 if(empty($data) && empty($decimal)){ return ; } $arr = array("0b"=>2,"0"=>8,"0x"=>16); $remainderArr = array(10=>'a', 11=>'b', 12=>"c", 13=>'d', 14=>"e", 15=>"f"); $remainderArr_rev = array_flip($remainderArr); if(!in_array($decimal, $arr)){ return ; } $newData = (string)$data; //强制转化为字符串 $num = 0; $len = strlen($newData); for($i=0;$i<$len;$i++){ if($decimal == 16 && in_array($newData[$i], $remainderArr)){ $num += $remainderArr_rev[$newData[$i]]*pow($decimal,$len-$i-1); }else{ $num += $newData[$i]*pow($decimal,$len-$i-1); } } return $num; } var_dump(tDecimal("101", 2)); //int(5) var_dump(tDecimal("07", 8)); //int(7) var_dump(tDecimal("1f", 16)); //int(31)
相关文章推荐
- 获取URL传进来的参数,法定节假日或者平时周末(排除补假)显示、隐藏电话号码
- C# 读取EXCEL数据
- 《ios与os x多线程和内存管理》
- 在网页上获取当前日期,数字时钟
- GTP(GPRS Tunnelling Protocol)协议http://blog.csdn.net/stephen_yin/article/details/6951237
- mysql判断表是否存在的语句
- Java异步回调
- 在Android6.0上给外置SD卡增加一个路径
- python 脚本风格
- Thinkphp简单无限级分类
- SQL
- Divide and conquer:Dropping tests(POJ 2976)
- 将博客搬至CSDN
- Tips For Autolayout
- linux 增加sudo权限
- 信必优用144部Windows Phone组超炫矩阵屏幕
- Android获取设备隐私 忽略6.0权限管理
- 希尔排序
- 3.2notify和notifyAll
- ios 简单绘制