PHP教程之php 完成进制转换(二进制、八进制、十六...
模仿的不光是模仿,模仿的同时在加改进,就成了自己的作品了。 十进制转换为二进制、八进制、十六进制从十进制向其它进制转换,用的是就用该数字不休除以要转换的进制数,读取余数。毗连一同就能够了。
复制代码 代码以下:
<?php
/**
*十进制转二进制、八进制、十六进制 缺乏位数后面补零*
*
* @param array $datalist 传入数据array(100,123,130)
* @param int $bin 转换的进制可所以:2,8,16
* @return array 前往数据 array() 前往没无数据转换的格局
* @copyright chengmo QQ:8292669
*/
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) {
=>
string(8) "10000000"
=>
string(8) "11111101"
}
array(2) {
=>
string(4) "0200"
=>
string(4) "0375"
}
array(2) {
=>
string(2) "80"
=>
string(2) "FD"
}
二进制、八进制、十六进制转十进制
这个转换用乘法,如:1101 转十进制:1*2^3+1*2^2+0*2^1+1*2^0
代码:
复制代码 代码以下:
<?php
/**
*二进制、八进制、十六进制 转十进制*
*
* @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); //将字符串朋分为单个字符数组
$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) {
=>
int(255)
=>
int(65331)
=>
int(52275)
}
array(2) {
=>
int(124)
=>
int(508)
}
array(2) {
=>
int(342099)
=>
int(5345)
}
后话,这些只是完成体例,其实不在意php言语仍是其它,完成思绪都是一样的。php其实内置很多函数可以完成这些内容:
bindec(),decoct(),dechex() base_convert() decbin() 这里只是完成思绪罢了。呵呵!第1步环境配置好了,你算了进了1小步了,那么第2步呢 就是调出第1个程序 一般都是用hello world,视频教程里面我都做了,hello world 至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。 实践是检验自己会不会的真理。 当然这种网站的会员费就几十块钱。 建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。 ,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。 我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。 写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。 不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。 学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql 遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。 如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域, 没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。 这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己 爱上php,他也会爱上你。 在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、 我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。 爱上php,他也会爱上你。 如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了, 对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
页:
[1]