/....
<?php
/*
*十进制转二进制、八进制、十六进制 不足位数前面补零
* @copyright http://www.cnblogs.com/chengmo
*/
function decto_bin($datalist,$bin)
{
static $arr=array(0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F');
if(!is_array($datalist)) $datalist=array($datalist);
if($bin==10)return $datalist; //相同进制忽略
$bytelen=ceil(16/$bin); //获得如果是$bin进制,一个字节的长度
$aOutChar=array();
foreach ($datalist as $num)
{
$t="";
$num=intval($num);
if($num===0)continue;
while($num>0)
{
$t=$arr[$num%$bin].$t;
$num=floor($num/$bin);
}
$tlen=strlen($t);
if($tlen%$bytelen!=0)
{
$pad_len=$bytelen-$tlen%$bytelen;
$t=str_pad("",$pad_len,"0",STR_PAD_LEFT).$t; //不足一个字节长度,自动前面补充0
}
$aOutChar[]=$t;
}
return $aOutChar;
}
/**
*二进制、八进制、十六进制 转十进制*
*
* @param array $datalist 传入数据array(df,ef)
* @param int $bin 转换的进制可以是:2,8,16
* @return array 返回数据 array() 返回没有数据转换的格式
* @copyright chengmo QQ:8292669
*/
function bin_todec($datalist,$bin)
{
static $arr=array('0'=>0,'1'=>1,'2'=>2,'3'=>3,'4'=>4,'5'=>5,'6'=>6,'7'=>7,'8'=>8,'9'=>9,'A'=>10,'B'=>11,'C'=>12,'D'=>13,'E'=>14,'F'=>15);
if(!is_array($datalist))$datalist=array($datalist);
if($bin==10)return $datalist; //为10进制不转换
$aOutData=array(); //定义输出保存数组
foreach ($datalist as $num)
{
//取出第一个数
$atnum=str_split($num); //将字符串分割为单个字符数组
//array(f,a)
$atlen=count($atnum);//2
$total=0;
$i=1;
foreach ($atnum as $tv)
{
$tv=strtoupper($tv);
if(array_key_exists($tv,$arr))
{
if($arr[$tv]==0)continue;
$total=$total+$arr[$tv]*pow($bin,$atlen-$i);
}
$i++;
}
$aOutData[]=$total;
}
return $aOutData;
}
print_r( bin_todec(array(ff,fa),16));
?>
分享到:
相关推荐
二进制_八进制_十进制_十六进制之间的转换算法
用于单片机开发,运算数值与二进制、八进制、十进制、十六进制转换,与、或、非、与或算。
矩阵运算的例子,雅克比迭代,高斯迭代,还有十进制向二进制、八进制、十六进制转换的MATLAB源代码。
2、十进制转八进制:除了转换为二进制,该类还可以将十进制数转换为八进制数。这对于需要处理八进制数据的场景非常有用,如某些系统或协议中使用八进制表示数据。 3、十进制转十六进制:该类同样支持将十进制数转换...
...
...
进制数转换二进制八进制十进制十六进制之间转换方法PPT学习教案.pptx
C语言-顺序栈实现十进制转换为二进制-八进制-十六进制
进制转换C代码,包括二进制,八进制、十进制、十六进制
用栈实现十进制转换成二进制(c语言)用栈实现十进制转换成二进制(c语言)用栈实现十进制转换成二进制(c语言)
汇编语言各进制(二进制,八进制,十进制,十六进制)之间的转换,一网打尽,包括源码,word文档和PDF文档
用数据结构栈实现的数制转换,将十进制数转换为二进制,八进制,十六进制。
二进制八进制十进制十六进制之间的转换算法.pdf
进制转换、二进制、八进制、十进制、十六进制 Java软件
C语言实现十进制转换到二进制、八进制、十六进制
十进制转二进制的方法与二进制转十进制的方法及八进制十六进制
java_十进制数转换为二进制,八进制,十六进制数的算法
C语言实现十进制转换成二八十六进制的转换,代码已经经过调试可以使用,放心下载!
进制间转换 进制转换 二进制与十进制 八进制 十六进制转换