php进制转换,十六进制转为二进制,代码:

/**

* 十六进制转为二进制

* edit by www.jbxue.com

*/

function hex2bin($h)

{

if (!is_string($h)) return null;

$r='';

for ($a=0; $a

return $r;

}

?>

下面介绍下,php 实现进制转换(二进制、八进制、十六进制)互相转换的方法。

1,从十进制向其它进制转换,判断该数字不断除以要转换的进制数,读取余数,连接一起即可。

代码:

/**

*十进制转二进制、八进制、十六进制 不足位数前面补零*

*

* @param array $datalist 传入数据array(100,123,130)

* @param int $bin 转换的进制可以是:2,8,16

* @return array 返回数据 array() 返回没有数据转换的格式

* edit by www.jbxue.com

*/

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;

}

?>

测试:

复制代码 代码示例:

var_dump(decto_bin(array(128,253),2));

var_dump(decto_bin(array(128,253),8));

var_dump(decto_bin(array(128,253),16));

X-Powered-By: PHP/5.2.0

Content-type: text/html

array(2) {

[0]=>

string(8) "10000000"

[1]=>

string(8) "11111101"

}

array(2) {

[0]=>

string(4) "0200"

[1]=>

string(4) "0375"

}

array(2) {

[0]=>

string(2) "80"

[1]=>

string(2) "FD"

}

2,二进制、八进制、十六进制转十进制

此转换用乘法,如:1101 转十进制:1*2^3+1*2^2+0*2^1+1*2^0

代码:

/**

*二进制、八进制、十六进制 转十进制

* edit by www.jbxue.com

*

* @param array $datalist 传入数据array(df,ef)

* @param int $bin 转换的进制可以是:2,8,16

* @return array 返回数据 array() 返回没有数据转换的格式

*/

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); //将字符串分割为单个字符数组

$atlen=count($atnum);

$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;

}

?>

测试:

复制代码 代码示例:

var_dump(bin_todec(array('ff','ff33','cc33'),16));

var_dump(bin_todec(array('1101101','111101101'),2));

var_dump(bin_todec(array('1234123','12341'),8));

X-Powered-By: PHP/5.2.0

Content-type: text/html

array(3) {

[0]=>

int(255)

[1]=>

int(65331)

[2]=>

int(52275)

}

array(2) {

[0]=>

int(124)

[1]=>

int(508)

}

array(2) {

[0]=>

int(342099)

[1]=>

int(5345)

}

总结:

在php中内置不少函数可以完成以上的进制转换,比如bindec(),decoct(),dechex() base_convert() decbin()等。

通过本文,带给大家一个实现php中进制转换的思路,希望对大家有所帮助。

php十六进制转二进制,php 十六进制转化为二进制的代码相关推荐

  1. php 十六进制变中文版,php 汉字转化成 二进制 十进制 十六进制 数目字

    php 汉字转化成 二进制 十进制 十六进制 数字 /** * 把一个汉字转为unicode的通用函数,不依赖任何库,和别的自定义函数,但有条件 * 条件:本文件以及函数的输入参数应该用utf-8编码 ...

  2. python十进制转化为二进制_十进制转化为二进制的Python 3.2 代码

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. Python真是个方便的语言,工作中通过Java,C或C#要通过数行完成的功能,Pytho ...

  3. php数字转化二进制,php 汉字转化成 二进制 十进制 十六进制 数字

    /** * 把一个汉字转为unicode的通用函数,不依赖任何库,和别的自定义函数,但有条件 * 条件:本文件以及函数的输入参数应该用utf-8编码,不然要加函数转换 * 其实亦可轻易编写反向转换的函 ...

  4. 【C语言】将十进制数转化为二进制并输出

    十进制转化为二进制并输出(以整型为例) 首先需要明确十进制转为二进制的算法:将所需转化的数除以2,所得余数为k1,将所得商再除以2,所得余数为k2-...重复步骤直到商为0:读数时从最后一个余数读起, ...

  5. 16进制ff转化为二进制_3秒钟快速转换十六进制为二进制

    这里介绍下如何快速将十六进制转换为二进制: 举例,ipv6地址:FE80::1 先将FE80拆分为FE和80,我们知道F是十进制的15,E为14,我们知道二进制的八位组,全为1时(1111 1111) ...

  6. C++ [进制转换]十六进制转化为二进制

    C++ [进制转换]十六进制转化为二进制 思路:利用输入十六进制字符串,然后从前往后逐一提取单一字符,转换为整形变量,在应用 switch-case 来对应到此数对应的二进制四位上. 注意:字符转换为 ...

  7. 十进制转化为二进制与十六进制显示(汇编程序)

    stacks segment stack dw 200h dup(0);不太明白要200h这么大 stacks ends data segment in_buf db 6;定义输入字符串最大长度 in ...

  8. php 数组转二进制,php转16进制_php 十六进制转化为二进制的代码

    摘要 腾兴网为您分享:php 十六进制转化为二进制的代码,字体配置,政务易,弈玩游戏,易信等软件知识,以及517电信日海报,e568驱动,彩虹qq2013,孢子,和路通,ae版本,乐视行车记录仪app ...

  9. 关于Java二进制和十六进制转化的一点问题

    今天在学习Spring Security在做密码加密配置时,有个地方需要做一个二进制和十进制的转化,自己便随手写了一个,没想到,在运行了几次之后始终验证不过,郁闷的不行,由于我用的是Spring Se ...

  10. 数制转化(二进制,十进制,十六进制)

    目录 数制的基本概念: 一.基本理论 二进制进制转化十进制理论: 二进制转化十六进制理论: 二.基础代码 1.C语言代码实现(二进制转化十进制) 2.python代码实现(二进制转化十进制) 总结 数 ...

最新文章

  1. Object.entries(obj)
  2. Win32下内存分配简单示例 - 使用CFree
  3. 推特惊爆史诗级漏洞,App 恶意窃取用户隐私,云端安全路向何方?
  4. 聚类中心坐标公式如何使用_如何使用CAD看图软件来测量坐标?
  5. python批量读取csv并入库pg_如何通读CSV然后在Python中发布批量API调用
  6. 防止sql注入:替换危险字符
  7. 用 1 行 Python 代码实现 FTP 服务器 - Pyftpdlib
  8. 前端架构 IMVC 实时热更新模式
  9. Excel:自动录入学生的基本情况信息表(转)
  10. IOUtils工具类的依赖maven
  11. 轻量级DI框架Guice使用详解
  12. 能打开pdf格式的软件
  13. 137、TensorFlow使用TextCNN进行文本分类
  14. 计算机网络体系批判,基于批判性思维的计算机网络概论课程改革.pdf
  15. XTP控件ReportCtrl使用
  16. MOOS-ivp 实验一 在linux系统中安装moos-ivp遇到的各种问题汇总
  17. javaweb简单的外卖平台系统(一)
  18. 搭建之星中文编程教学教程视频
  19. 全链路压测需要如何开展?
  20. 国内外黑客大会资料下载

热门文章

  1. 播布客全部视频教程汇总
  2. 记一次破解blob加密视频网站的过程
  3. 昆腾的反思:对象存储解困大数据
  4. 投射式触摸屏自电容与互电容工作原理基础(未完待续)
  5. 计算广告学涉及的学科与技术
  6. c++11原子量atomic
  7. 江苏长江水位告警 南京明城墙再现“龙吐水”
  8. 黑苹果 服务器系统安装,黑苹果原版安装从零开始之 :MBR转GPT和新建EFI分区详细教程 _ 黑苹果乐园...
  9. java文件上传与下载
  10. 如何批量快速提取复制文件夹里所有文件夹名和文件名(包括所有子文件里的所有文件夹名和文件名)详细步骤