加入收藏 | 设为首页 | 会员中心 | 我要投稿 甘南站长网 (https://www.0941zz.com/)- 科技、行业物联网、开发、云计算、云管理!
当前位置: 首页 > 编程开发 > PHP > 正文

PHP进制转换实例分析(2,8,16,36,64进制至10进制相互转换)

发布时间:2021-01-12 11:39:23 所属栏目:PHP 来源:互联网
导读:这篇文章主要介绍了PHP进制转换,结合具体实例形式分析了2,8,16,36,64进制至10进制相互转换实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了PHP进制转换。分享给大家供大家参考,具体如下:

可以实现:

10进制转换2、8、16、36、62进制

2、8、16、36、62进制转换10进制

有点要注意下,2、8、16进制转换时,使用的是系统的自己的函数。

所以,不管怎么高精度转换值可能大于2147483646。

另外,

32进制低精转换,最大值:2147483646; 32进制高精转换,最大值:77309411327; 64进制高精转换,最大值:133143986175。

jinzhi.php文件,自带演示功能。

进制转换/title> </head> <body> <form id="jzh" name="jinzhih" method="post" action=""> <input name="go" type="hidden" value="100"> <table width="482" border="1" cellpadding="0" cellspacing="0" bordercolor="#FFE8E8" bgcolor="#F4F8FB"> <tr> <td width="194"><select name="jinzhi0" id="jinzhi0"> <option value="2">2</option> <option value="8">8</option> <option value="10" selected="selected">10</option> <option value="16">16</option> <option value="36">36</option> <option value="62">62</option> </select> 进制</td> <td width="275"><input name="zhi" type="text" id="zhi" /></td> </tr> <tr> <td>进行<input name="lx" type="radio" value="0" checked="checked" /> 普通<input type="radio" name="lx" value="1" />高精</td><td> </td> </tr> <tr> <td>转换为 <select name="jinzhi1" id="jinzhi1"> <option value="2" selected="selected">2</option> <option value="8">8</option> <option value="10">10</option> <option value="16">16</option> <option value="36">36</option> <option value="62">62</option> </select>进制,</td><td>总长度为 <input name="changdu" type="text" id="changdu" value="10" size="4" maxlength="2" /> 字符。</td></tr><tr> <td><input type="submit" name="Submit" value="提交" /></td> <td><input type="reset" name="Submit2" value="重置" /></td> </tr></table> <p>注意:仅能进行10进制转换为2、8、16、36、62进制;或反转换。</p></form> <?php class jinzhi_class { //10进制转2、8、16、36、62进制 function jinzhih_0($shu,$jinzhi,$w) { $zifu = ""; while ($shu!=0){ $linshi = $shu%$jinzhi; switch ($jinzhi){ case 2: $zifu = decbin($shu); return $zifu; case 8: $zifu = decoct($shu); return $zifu; case 16: $zifu = dechex($shu); return $zifu; case 36: if ($linshi>=10) { $zifu.= chr(($linshi+55)); }else{ $zifu.= $linshi;} break; case 62: if (($linshi>=10) && ($linshi36)) {$zifu.= chr($linshi+55);break;} if (($linshi>=36) && ($linshi62)) {$zifu.= chr($linshi+61);break;} $zifu.= $linshi;break; default: $zifu.= $linshi; break; } $shu = intval($shu/$jinzhi); } for ($i=strlen($zifu);$i$w;$i++) $zifu.="0"; return strrev($zifu);} //2、8、16、36、62进制转10进制 function jinzhih_1($zifu,$w) { $shu=0; for ($i=0;$i=strlen($zifu)-1;$i++) { $linshi = substr($zifu,$i,1); switch ($jinzhi){ case 2: $shu = bindec($zifu); $i=strlen($zifu)+1; break; case 8: $shu = octdec($zifu); $i=strlen($zifu)+1; break; case 16: $shu = hexdec($zifu); $i=strlen($zifu)+1; break; case 36: if (ord($linshi)=57) {$shu+=(ord($linshi)-48)*pow($jinzhi,strlen($zifu)-$i-1); }else{ $shu=$shu + (ord($linshi)-55)*pow($jinzhi,strlen($zifu)-$i-1);} break; case 62: if (ord($linshi)=57) {$shu+=$linshi*pow($jinzhi,strlen($zifu)-$i-1); }elseif ((ord($linshi)>=65) && (ord($linshi)=90)){ $shu+= (ord($linshi)-55)*pow($jinzhi,strlen($zifu)-$i-1); }else{ $shu+= (ord($linshi)-61)*pow($jinzhi,strlen($zifu)-$i-1);} break; } } return $shu; } //10进制高精度转换2、8、16、36、62进制 function jinzhih_G0($shu,$w) { $zifu = ""; while ($shu!=0){ $linshi = bcmod($shu,$jinzhi); switch ($jinzhi){ case 2: $zifu = decbin($shu); return $zifu; case 8: $zifu = decoct($shu); return $zifu; case 16: $zifu = dechex($shu); return $zifu; case 36: if ($linshi>=10) { $zifu.= chr(($linshi+55)); }else{ $zifu.= $linshi;} break; case 62: if (($linshi>=10) && ($linshi36)) {$zifu.= chr($linshi+55);break;} if (($linshi>=36) && ($linshi62)) {$zifu.= chr($linshi+61);break;} $zifu.= $linshi;break; default: $zifu.= $linshi; break; } $shu = intval(bcdiv($shu,$jinzhi)); } for ($i=strlen($zifu);$i$w;$i++) $zifu.="0"; return strrev($zifu);} //2、8、16、36、62进制高精度转换10进制 function jinzhih_G1($zifu,$w) { $shu= ""; for ($i=0;$i=strlen($zifu)-1;$i++) { $linshi = substr($zifu,1); switch ($jinzhi){ case 2: $shu = bindec($zifu); $i=strlen($zifu)+1; break; case 8: $shu = octdec($zifu); $i=strlen($zifu)+1; break; case 16: $shu = hexdec($zifu); $i=strlen($zifu)+1; break; case 36: if (ord($linshi)=57) {$shu=bcadd($shu,bcmul((ord($linshi)-48),bcpow($jinzhi,strlen($zifu)-$i-1))); }else{ $shu=bcadd($shu,bcmul((ord($linshi)-55),strlen($zifu)-$i-1)));} break; case 62: if (ord($linshi)=57) {$shu=bcadd($shu,bcmul($linshi,strlen($zifu)-$i-1))); }elseif ((ord($linshi)>=65) && (ord($linshi)=90)){ $shu=bcadd($shu,strlen($zifu)-$i-1))); }else{ $shu=bcadd($shu,bcmul((ord($linshi)-61),strlen($zifu)-$i-1))); } break; } } return $shu;} } if (isset($_GET["p"])) {if ($_GET["p"]==="1"){ echo ""; echo "提示: "; echo "32进制低精转换,最大值:2147483646 "; echo "32进制高精转换,最大值:77309411327 "; echo "64进制高精转换,最大值:133143986175 "; echo ""; echo "值为:"; $Fs = new jinzhi_class(); if ($_POST['lx']=="0" && $_POST['jinzhi0']=="10") {echo $Fs->jinzhih_0($_POST['zhi'],$_POST['jinzhi1'],$_POST['changdu'])." ";} if ($_POST['lx']=="1" && $_POST['jinzhi0']=="10") {echo $Fs->jinzhih_G0($_POST['zhi'],$_POST['changdu']);} if ($_POST['lx']=="0" && $_POST['jinzhi0']>"10") {echo $Fs->jinzhih_1($_POST['zhi'],$_POST['jinzhi0'],$_POST['changdu']);} if ($_POST['lx']=="1" && $_POST['jinzhi0']>"10") {echo $Fs->jinzhih_G1($_POST['zhi'],$_POST['changdu']);} } echo "";} $mtime1 = explode(" ",microtime()); $endTime = $mtime1[0] + $mtime1[1]; printf ("页面执行时间:%.6fs.",$endTime-$startTime); ?></pre> <p>PS:这里再为大家推荐几款计算与转换工具供大家参考使用:</h3></p> <p>在线任意进制转换工具: </h3></p> <p>科学计算器在线使用_高级计算器在线计算: </h3></p> <p>在线计算器_标准计算器: </h3></p> <p>更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《》</p> <p>希望本文所述对大家PHP程序设计有所帮助。</p></p></p></p> <p style="text-align:right;">(编辑:甘南站长网)</p> <p style="text-align:right;">【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!</p> </td> </tr> </table> </div> <div class="dede_pagess"><ul class="pagelist"></ul></div> <div class="ad-690"><script src='https://ess.0577qiche.com/d/js/acmsd/ad76.js' language='javascript'></script></div> <div class="g-box10"> <div class="t-2">相关内容</div> <ul class="b-box12"></ul> <ul class="b-box13"><li><a href="https://www.0941zz.com/html/kaifa/PHP/20210124/15893.html" target="_blank">PHP自定义函数获取汉字首字母的方法</a></li><li><a href="https://www.0941zz.com/html/kaifa/PHP/20210111/14023.html" target="_blank">详解PHP安装mysql.so扩展的方法</a></li><li><a href="https://www.0941zz.com/html/kaifa/PHP/20201117/10488.html" target="_blank">PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等</a></li><li><a href="https://www.0941zz.com/html/kaifa/PHP/20210111/14033.html" target="_blank">PHP搭建大文件切割分块上传功能示例</a></li><li><a href="https://www.0941zz.com/html/kaifa/PHP/20201231/13828.html" target="_blank">PHP中对汉字进行unicode编码和解码的实现方法(必看)</a></li><li><a href="https://www.0941zz.com/html/kaifa/PHP/20201205/12275.html" target="_blank">PHP实现ASCII码与字符串相互转换的方法</a></li><li><a href="https://www.0941zz.com/html/kaifa/PHP/20201205/11869.html" target="_blank">Laravel中任务调度console使用方法小结</a></li><li><a href="https://www.0941zz.com/html/kaifa/PHP/20210330/16849.html" target="_blank">php 使用redis锁限制并发访问类示例</a></li><li><a href="https://www.0941zz.com/html/kaifa/PHP/20201230/12951.html" target="_blank">PHP面相对象中的重载与重写</a></li><li><a href="https://www.0941zz.com/html/kaifa/PHP/20200901/9066.html" target="_blank">PHP学习:form自动提交实例讲解</a></li><div class="cl"></div></ul> </div> </div> </div> <div class="right-1 fr"> <div class="g-box8"> <div class="t-2">推荐文章</div> <ul></ul> </div> <div class="g-box11"> <div class="t-2">站长推荐</div> <ul class="b-box7"><li><a href="https://www.0941zz.com/html/kaifa/PHP/20201230/12957.html" target="_blank">PHP实现对数组分页处理实例详解</a></li><li><a href="https://www.0941zz.com/html/kaifa/PHP/20210112/14800.html" target="_blank">php加密之discuz内容经典加密方式实例详解</a></li><li><a href="https://www.0941zz.com/html/kaifa/PHP/20201215/12299.html" target="_blank">PHP中快速生成随机密码的几种方式</a></li><li><a href="https://www.0941zz.com/html/kaifa/PHP/20201205/12276.html" target="_blank">PHP 序列化和反序列化函数实例详解</a></li><li><a href="https://www.0941zz.com/html/kaifa/PHP/20200901/9071.html" target="_blank">PHP的魔术方法__call在子类上</a></li><li><a href="https://www.0941zz.com/html/kaifa/PHP/20201231/13779.html" target="_blank">利用php生成验证码</a></li><li><a href="https://www.0941zz.com/html/kaifa/PHP/20210330/16859.html" target="_blank">关于PHP中字符串与多进制转换函数的实例代码</a></li><li><a href="https://www.0941zz.com/html/kaifa/PHP/20210117/15238.html" target="_blank">phalcon model在插入或更新时会自动验证非空字段</a></li><li><a href="https://www.0941zz.com/html/kaifa/PHP/20210117/15054.html" target="_blank">Zend Framework入门教程之Zend_View组件用法示例</a></li><li><a href="https://www.0941zz.com/html/kaifa/PHP/20200901/8369.html" target="_blank">php – 您应该在模型中验证吗? (基于Symfony的问</a></li></ul> </div> <script type="text/javascript">jQuery(".g-box8").slide({ titCell:"li",triggerTime:0 }); </script> <div class="ad-250"><script src='https://ess.0577qiche.com/d/js/acmsd/ad103.js' language='javascript'></script></div> <div class="g-box3 u-3"> <div class="t-1">热点阅读</div> <ul class="b-box2"></ul> </div> <div class="ad-250"><script src='https://ess.0577qiche.com/d/js/acmsd/ad77.js' language='javascript'></script></div> </div> <div class="cl"></div> </div> <div class="ad-960"><script src='https://ess.0577qiche.com/d/js/acmsd/ad78.js' language='javascript'></script></div> <div class="footer"> <p>【免责声明】本站内容转载自互联网,其发布内容言论不代表本站观点,如果其链接、内容的侵犯您的权益,烦请提交相关链接至邮箱bqsm@foxmail.com我们将及时予以处理。</p> <p>建议您使用1920×1080分辨率、谷歌浏览器Google Chrome、Microsoft Edge以获得本站的非凡浏览效果</p> <p>Copygight © 2018-2023 https://www.0941zz.com/ All Rights Reserved. 甘南站长网</p> <p><script charset="UTF-8" id="LA_COLLECT" src="//sdk.51.la/js-sdk-pro.min.js"></script><script>LA.init({id:"1zy1wryLsx3mjs1Y",ck:"1zy1wryLsx3mjs1Y"})</script><a target="_blank" title="51la网站统计" href="https://v6.51.la/land/1zy1wryLsx3mjs1Y"><img src="https://sdk.51.la/icon/3-1.png"></a></p> </div> </body> </html>