再见西城 发表于 2015-2-3 23:41:29

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

谁可相欹 发表于 2015-2-4 06:03:50

至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。

再见西城 发表于 2015-2-9 16:50:59

实践是检验自己会不会的真理。

金色的骷髅 发表于 2015-2-26 14:01:45

当然这种网站的会员费就几十块钱。

愤怒的大鸟 发表于 2015-3-8 15:30:38

建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。

只想知道 发表于 2015-3-16 03:07:41

,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。

因胸联盟 发表于 2015-3-17 17:09:44

我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。

蒙在股里 发表于 2015-3-24 12:50:10

写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。

精灵巫婆 发表于 2015-3-27 11:56:55

不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。

admin 发表于 2015-4-1 21:08:48

学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql

小妖女 发表于 2015-4-10 22:36:01

遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。

深爱那片海 发表于 2015-4-11 11:49:50

如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,

再现理想 发表于 2015-4-11 18:27:02

没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。

分手快乐 发表于 2015-4-15 05:16:05

这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己

莫相离 发表于 2015-5-6 17:50:39

爱上php,他也会爱上你。

乐观 发表于 2015-5-7 02:58:28

在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、

若相依 发表于 2015-5-9 01:02:35

我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。

小魔女 发表于 2015-5-9 06:43:56

爱上php,他也会爱上你。

冷月葬花魂 发表于 2015-7-9 03:04:04

如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,

透明 发表于 2015-7-10 05:19:34

对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
页: [1]
查看完整版本: PHP教程之php 完成进制转换(二进制、八进制、十六...