/....
<?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”相关知识点。 首先,让我们从进制的基础概念开始。进制是一种数字系统,它使用一组特定的符号来表示数值。我们最熟悉的十...
二进制转换为八进制可以使用取三合一法,即从二进制的小数点为分界点,向左(向右)每三位取成一位,接着将这三位二进制按权相加,得到的数就是一位八位二进制数,然后,按顺序进行排列,小数点的位置不变,得到的...
二进制转换为其他进制时,可以采用乘权相加的方法。例如,要将二进制数1011转换为十进制,可以按照权重2^3、2^2、2^1、2^0分别对应位置的1,计算得到1*8 + 0*4 + 1*2 + 1*1 = 11。对于十六进制转换,每四位二进制...
进制转换是计算机科学中的基础概念,涉及到二进制、八进制、十进制、十六进制等不同数字系统间的转换。在编程中,掌握各种进制转换的方法至关重要,因为计算机内部处理数据主要采用二进制。本资料包着重讨论了如何...
二进制、八进制、十进制和十六进制是计算机科学中常见的数值表示方式。这些进制系统在计算机内部数据处理和编程中扮演着核心角色。本文将详细介绍它们之间的相互转换方法。 二进制(Binary)系统基于2的幂次,只有...
在计算机科学领域,二进制、八进制、十进制和十六进制是四种常见的数值表示方式。它们之间的转换是编程和系统设计中的基本技能。以下是对这些进制转换的详细解释: **二进制(Binary)**:二进制系统只包含两个数字...
* 二进制转换为十进制:将二进制数按位权乘以2的N-1次方。 (2)十进制与八进制之间的转换: * 十进制转换为八进制:将十进制数除以8,商数作为高位,余数作为低位。 * 八进制转换为十进制:将八进制数按位权乘以8...
2. **八进制(Octal)**:八进制由数字0-7组成,每三位二进制对应一位八进制,方便简化二进制数字的表示。例如,二进制的10110101对应八进制的275。 3. **十进制(Decimal)**:日常生活中最常见的计数方式,由0-9...
例如,从二进制转换到八进制或十六进制,可以先将二进制转换为十进制,然后再转换为目标进制。反之,从八进制或十六进制转换为二进制,则可以先转换为十进制,再转为二进制。 五、自定义函数实现 在实际项目中,...
- **八进制转十进制**:与二进制类似,累加八的幂次。 - **十进制转八进制**:连续除8取余,逆序排列余数。 - **十六进制转十进制**:累加十六的幂次,十六进制的A-F分别对应10-15。 - **十进制转十六进制**:除16...
在C#这种高级编程语言中,进行进制转换可以方便地处理二进制、八进制、十进制和十六进制等不同数字系统之间的数据交互。本项目是一个专门针对进制转换的小程序,旨在帮助用户便捷地实现任意进制之间的转换。 C#中的...
例如,八进制数字100对应的二进制是01000000,而十进制中的80(即8乘以10的1次方)在八进制中表示为100。 十六进制系统基于基数16,使用0到9的数字以及A到F(分别代表10到15)来表示。每个十六进制位可以表示四个二...
在编程和计算机科学中,进制转换是一种基本的技能,特别是在处理二进制、八进制、十进制和十六进制数时。蓝桥杯竞赛中常常涉及到这些概念,尤其是进制转换的实践应用。本篇文章将深入探讨十六进制到八进制的转换方法...
进制转换在日常的编程和计算中非常常见,比如在处理二进制、八进制、十进制和十六进制之间转换时。对于二进制和十六进制,它们之间的转换尤其便捷,因为二进制每四位可以转换为一个十六进制数字,反之亦然。而对于十...
3. **八进制转其他进制**:类似二进制转换,但首先需要将八进制转换为二进制,然后再转为目标进制。 4. **十进制转其他进制**:使用长除法,每次除以目标基数,记录商和余数,余数是转换后的数字的低位,商继续除法...
"二进制八进制十进制十六进制之间的转换算法" 本文主要讲解了二进制、八进制、十进制、十六进制之间的转换算法。包括十进制与二进制之间的转换、八进制与二进制之间的转换、十六进制与二进制之间的转换等。 十进制...
本篇将详细介绍二进制转十进制以及进制转换的相关知识。 首先,我们来看二进制(Binary)和十进制(Decimal)之间的转换。二进制系统是计算机内部存储和处理数据的基础,它只使用两个符号:0和1。而十进制是我们...
2、十进制转八进制:除了转换为二进制,该类还可以将十进制数转换为八进制数。这对于需要处理八进制数据的场景非常有用,如某些系统或协议中使用八进制表示数据。 3、十进制转十六进制:该类同样支持将十进制数转换...
本文将详细介绍十进制转二进制的方法,并对二进制转十进制、八进制、十六进制的转换方法进行比较和分析。 一、十进制转二进制 十进制转二进制的算法是许多初学者头疼的问题,但实际上这是一种简单的除法算法。具体...