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. “平头哥”半导体公司
  2. 《The Elements of Statistical Learning》 chp3 Linear Models for Regression
  3. python网课什么平台好-python网课什么平台好
  4. Nagios 安装配置
  5. 计算机视觉,图像处理 经典代码paper整理(很全很强大!)
  6. hive double 转decimal_一起学习Hive基础(多知识点)
  7. spark2.0.1 安装配置
  8. 【转载】为什么飞鸽传书一直流行?
  9. LeetCode 155. Min Stack
  10. android工具栏隐藏和显示不出来了,Android工具栏操作按钮未显示
  11. ssis行计数变量_SSIS管道性能计数器指南
  12. JS function 函数基本定义方法
  13. java core 之 异常处理详解
  14. 【窗口置顶神器】DeskPins
  15. 2.运筹学上课复盘 之 单纯性法的原理 + 两阶段法 + 解的类型
  16. python opencv读大华摄像头视频流实时移动侦测运动检测截图拍照保存
  17. 第十四届全国大学生信息安全竞赛部分wp
  18. 计算机win加r,快捷键win+r是什么意思_打开运行快捷键win+r怎么按
  19. 学习!嵌入式底层驱动工程师学习方法
  20. 计算机网络之IP协议与以太网

热门文章

  1. AutoCAD二次开发学习文档
  2. leapftp怎么下载文件,用leapftp怎么下载文件
  3. 机房服务器配置方案文件,机房搬迁实施方案模版
  4. python 通达信公式函数,python使用通达信公式,请人用python编写如下公式,我对编程一窍不通...
  5. yolo系列外文翻译_yolov3论文中英对照版
  6. 程控电源测试使用小记
  7. php speex转码为mp3,ffmpeg speex转换为mp3或者aac
  8. Day23:算法之分支定界
  9. 524MB的微信输入法:没广告 你会用吗
  10. 可能是数据最全的世界各国地区下拉级联,包含国际化中英文