仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1288|回复: 19
打印 上一主题 下一主题

[学习教程] PHP教程之php 完成进制转换(二进制、八进制、十六...

[复制链接]
再见西城 该用户已被删除
跳转到指定楼层
#
发表于 2015-2-3 23:41:29 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
模仿的不光是模仿,模仿的同时在加改进,就成了自己的作品了。   十进制转换为二进制、八进制、十六进制
从十进制向其它进制转换,用的是就用该数字不休除以要转换的进制数,读取余数。毗连一同就能够了。
复制代码 代码以下:
<?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) {
[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"
}
二进制、八进制、十六进制转十进制
这个转换用乘法,如: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) {
[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言语仍是其它,完成思绪都是一样的。php其实内置很多函数可以完成这些内容:
bindec(),decoct(),dechex() base_convert() decbin() 这里只是完成思绪罢了。呵呵!第1步环境配置好了,你算了进了1小步了,那么第2步呢 就是调出第1个程序 一般都是用hello world,视频教程里面我都做了,hello world
透明 该用户已被删除
19#
发表于 2015-7-10 05:19:34 | 只看该作者
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
冷月葬花魂 该用户已被删除
18#
发表于 2015-7-9 03:04:04 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
小魔女 该用户已被删除
17#
发表于 2015-5-9 06:43:56 | 只看该作者
爱上php,他也会爱上你。
若相依 该用户已被删除
16#
发表于 2015-5-9 01:02:35 | 只看该作者
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
乐观 该用户已被删除
15#
发表于 2015-5-7 02:58:28 | 只看该作者
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
莫相离 该用户已被删除
14#
发表于 2015-5-6 17:50:39 | 只看该作者
爱上php,他也会爱上你。
分手快乐 该用户已被删除
13#
发表于 2015-4-15 05:16:05 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
再现理想 该用户已被删除
12#
发表于 2015-4-11 18:27:02 | 只看该作者
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
深爱那片海 该用户已被删除
11#
发表于 2015-4-11 11:49:50 | 只看该作者
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
小妖女 该用户已被删除
10#
发表于 2015-4-10 22:36:01 | 只看该作者
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
admin 该用户已被删除
9#
发表于 2015-4-1 21:08:48 | 只看该作者
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
精灵巫婆 该用户已被删除
8#
发表于 2015-3-27 11:56:55 | 只看该作者
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
蒙在股里 该用户已被删除
7#
发表于 2015-3-24 12:50:10 | 只看该作者
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
因胸联盟 该用户已被删除
6#
发表于 2015-3-17 17:09:44 | 只看该作者
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
只想知道 该用户已被删除
5#
发表于 2015-3-16 03:07:41 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
愤怒的大鸟 该用户已被删除
地板
发表于 2015-3-8 15:30:38 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
金色的骷髅 该用户已被删除
板凳
发表于 2015-2-26 14:01:45 | 只看该作者
当然这种网站的会员费就几十块钱。
再见西城 该用户已被删除
沙发
 楼主| 发表于 2015-2-9 16:50:59 | 只看该作者
实践是检验自己会不会的真理。
谁可相欹 该用户已被删除
楼主
发表于 2015-2-4 06:03:50 | 只看该作者
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 02:17

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表