欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOCX文档下载  

    php 实现进制相互转换_.docx

    • 资源ID:11633487       资源大小:13.24KB        全文页数:8页
    • 资源格式: DOCX        下载积分:4
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要4
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    php 实现进制相互转换_.docx

    php 实现进制相互转换_ 从十进制向其它进制转换,用的是就用该数字不断除以要转换的进制数,读取余数。连接一起就可以了。 ?php /* *十进制转二进制、八进制、十六进制 不足位数前面补零* * * param array $datalist 传入数据array(100,123,130) * param int $bin 转换的进制可以是:2,8,16 * return array 返回数据 array() 返回没有数据转换的格式 */ 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($num0) $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*23+1*22+0*21+1*20 代码: ?php /* *二进制、八进制、十六进制 转十进制* * * param array $datalist 传入数据array(df,ef) * param int $bin 转换的进制可以是:2,8,16 * return array 返回数据 array() 返回没有数据转换的格式 * copyright chengmo :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() 这里只是实现思路而已。 .

    注意事项

    本文(php 实现进制相互转换_.docx)为本站会员(啊飒飒)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开