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代码实现(二进制转化十进制) 总结 数 ...
最新文章
- “平头哥”半导体公司
- 《The Elements of Statistical Learning》 chp3 Linear Models for Regression
- python网课什么平台好-python网课什么平台好
- Nagios 安装配置
- 计算机视觉,图像处理 经典代码paper整理(很全很强大!)
- hive double 转decimal_一起学习Hive基础(多知识点)
- spark2.0.1 安装配置
- 【转载】为什么飞鸽传书一直流行?
- LeetCode 155. Min Stack
- android工具栏隐藏和显示不出来了,Android工具栏操作按钮未显示
- ssis行计数变量_SSIS管道性能计数器指南
- JS function 函数基本定义方法
- java core 之 异常处理详解
- 【窗口置顶神器】DeskPins
- 2.运筹学上课复盘 之 单纯性法的原理 + 两阶段法 + 解的类型
- python opencv读大华摄像头视频流实时移动侦测运动检测截图拍照保存
- 第十四届全国大学生信息安全竞赛部分wp
- 计算机win加r,快捷键win+r是什么意思_打开运行快捷键win+r怎么按
- 学习!嵌入式底层驱动工程师学习方法
- 计算机网络之IP协议与以太网
热门文章
- AutoCAD二次开发学习文档
- leapftp怎么下载文件,用leapftp怎么下载文件
- 机房服务器配置方案文件,机房搬迁实施方案模版
- python 通达信公式函数,python使用通达信公式,请人用python编写如下公式,我对编程一窍不通...
- yolo系列外文翻译_yolov3论文中英对照版
- 程控电源测试使用小记
- php speex转码为mp3,ffmpeg speex转换为mp3或者aac
- Day23:算法之分支定界
- 524MB的微信输入法:没广告 你会用吗
- 可能是数据最全的世界各国地区下拉级联,包含国际化中英文