php十六进制转二进制,php 十六进制转化为二进制的代码
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 十六进制转化为二进制的代码相关推荐
- php 十六进制变中文版,php 汉字转化成 二进制 十进制 十六进制 数目字
php 汉字转化成 二进制 十进制 十六进制 数字 /** * 把一个汉字转为unicode的通用函数,不依赖任何库,和别的自定义函数,但有条件 * 条件:本文件以及函数的输入参数应该用utf-8编码 ...
- python十进制转化为二进制_十进制转化为二进制的Python 3.2 代码
下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. Python真是个方便的语言,工作中通过Java,C或C#要通过数行完成的功能,Pytho ...
- php数字转化二进制,php 汉字转化成 二进制 十进制 十六进制 数字
/** * 把一个汉字转为unicode的通用函数,不依赖任何库,和别的自定义函数,但有条件 * 条件:本文件以及函数的输入参数应该用utf-8编码,不然要加函数转换 * 其实亦可轻易编写反向转换的函 ...
- 【C语言】将十进制数转化为二进制并输出
十进制转化为二进制并输出(以整型为例) 首先需要明确十进制转为二进制的算法:将所需转化的数除以2,所得余数为k1,将所得商再除以2,所得余数为k2-...重复步骤直到商为0:读数时从最后一个余数读起, ...
- 16进制ff转化为二进制_3秒钟快速转换十六进制为二进制
这里介绍下如何快速将十六进制转换为二进制: 举例,ipv6地址:FE80::1 先将FE80拆分为FE和80,我们知道F是十进制的15,E为14,我们知道二进制的八位组,全为1时(1111 1111) ...
- C++ [进制转换]十六进制转化为二进制
C++ [进制转换]十六进制转化为二进制 思路:利用输入十六进制字符串,然后从前往后逐一提取单一字符,转换为整形变量,在应用 switch-case 来对应到此数对应的二进制四位上. 注意:字符转换为 ...
- 十进制转化为二进制与十六进制显示(汇编程序)
stacks segment stack dw 200h dup(0);不太明白要200h这么大 stacks ends data segment in_buf db 6;定义输入字符串最大长度 in ...
- php 数组转二进制,php转16进制_php 十六进制转化为二进制的代码
摘要 腾兴网为您分享:php 十六进制转化为二进制的代码,字体配置,政务易,弈玩游戏,易信等软件知识,以及517电信日海报,e568驱动,彩虹qq2013,孢子,和路通,ae版本,乐视行车记录仪app ...
- 关于Java二进制和十六进制转化的一点问题
今天在学习Spring Security在做密码加密配置时,有个地方需要做一个二进制和十进制的转化,自己便随手写了一个,没想到,在运行了几次之后始终验证不过,郁闷的不行,由于我用的是Spring Se ...
- 数制转化(二进制,十进制,十六进制)
目录 数制的基本概念: 一.基本理论 二进制进制转化十进制理论: 二进制转化十六进制理论: 二.基础代码 1.C语言代码实现(二进制转化十进制) 2.python代码实现(二进制转化十进制) 总结 数 ...
最新文章
- Object.entries(obj)
- Win32下内存分配简单示例 - 使用CFree
- 推特惊爆史诗级漏洞,App 恶意窃取用户隐私,云端安全路向何方?
- 聚类中心坐标公式如何使用_如何使用CAD看图软件来测量坐标?
- python批量读取csv并入库pg_如何通读CSV然后在Python中发布批量API调用
- 防止sql注入:替换危险字符
- 用 1 行 Python 代码实现 FTP 服务器 - Pyftpdlib
- 前端架构 IMVC 实时热更新模式
- Excel:自动录入学生的基本情况信息表(转)
- IOUtils工具类的依赖maven
- 轻量级DI框架Guice使用详解
- 能打开pdf格式的软件
- 137、TensorFlow使用TextCNN进行文本分类
- 计算机网络体系批判,基于批判性思维的计算机网络概论课程改革.pdf
- XTP控件ReportCtrl使用
- MOOS-ivp 实验一 在linux系统中安装moos-ivp遇到的各种问题汇总
- javaweb简单的外卖平台系统(一)
- 搭建之星中文编程教学教程视频
- 全链路压测需要如何开展?
- 国内外黑客大会资料下载
热门文章
- 播布客全部视频教程汇总
- 记一次破解blob加密视频网站的过程
- 昆腾的反思:对象存储解困大数据
- 投射式触摸屏自电容与互电容工作原理基础(未完待续)
- 计算广告学涉及的学科与技术
- c++11原子量atomic
- 江苏长江水位告警 南京明城墙再现“龙吐水”
- 黑苹果 服务器系统安装,黑苹果原版安装从零开始之 :MBR转GPT和新建EFI分区详细教程 _ 黑苹果乐园...
- java文件上传与下载
- 如何批量快速提取复制文件夹里所有文件夹名和文件名(包括所有子文件里的所有文件夹名和文件名)详细步骤