加入收藏 | 设为首页 | 会员中心 | 我要投稿 吉安站长网 (https://www.0796zz.com/)- 物联设备、建站、物联安全、云计算、基础存储!
当前位置: 首页 > 编程开发 > PHP > 正文

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

发布时间:2021-01-12 13:25:38 所属栏目: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.0796zz.com/html/kaifa/PHP/20210124/17882.html" target="_blank">php判断是否为ajax请求的方法</a></li><li><a href="https://www.0796zz.com/html/kaifa/PHP/20210112/16536.html" target="_blank">PHP三种方式实现链式操作详解</a></li><li><a href="https://www.0796zz.com/html/kaifa/PHP/20210117/17117.html" target="_blank">Zend Framework实现自定义过滤器的方法</a></li><li><a href="https://www.0796zz.com/html/kaifa/PHP/20201227/14246.html" target="_blank">PHP递归删除多维数组中的某个值</a></li><li><a href="https://www.0796zz.com/html/kaifa/PHP/20201230/15730.html" target="_blank">PHP + plupload.js实现多图上传并显示进度条加删除实例代码</a></li><li><a href="https://www.0796zz.com/html/kaifa/PHP/20201227/14565.html" target="_blank">php安装dblib扩展,连接mssql的具体步骤</a></li><li><a href="https://www.0796zz.com/html/kaifa/PHP/20210117/17385.html" target="_blank">phalcon model在插入或更新时会自动验证非空字段的解决办法</a></li><li><a href="https://www.0796zz.com/html/kaifa/PHP/20201228/14660.html" target="_blank">PHP7多线程搭建教程</a></li><li><a href="https://www.0796zz.com/html/kaifa/PHP/20210331/19086.html" target="_blank">ecshop适应在PHP7的修改方法解决报错的实现</a></li><li><a href="https://www.0796zz.com/html/kaifa/PHP/20201228/14658.html" target="_blank">php获取excel文件数据</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.0796zz.com/html/kaifa/PHP/20201231/15886.html" target="_blank">PHP实现上传多文件示例代码</a></li><li><a href="https://www.0796zz.com/html/kaifa/PHP/20210221/18418.html" target="_blank">php实现当前页面点击下载文件的实例代码</a></li><li><a href="https://www.0796zz.com/html/kaifa/PHP/20210330/18725.html" target="_blank">PHP之十六个魔术方法详细介绍</a></li><li><a href="https://www.0796zz.com/html/kaifa/PHP/20201230/15731.html" target="_blank">简单谈谈PHP中的trait</a></li><li><a href="https://www.0796zz.com/html/kaifa/PHP/20210112/16904.html" target="_blank">PHP判断数组是否为空的常用方法(五种方法)</a></li><li><a href="https://www.0796zz.com/html/kaifa/PHP/20201228/14665.html" target="_blank">php实现不通过扩展名准确判断文件类型的方法【fi</a></li><li><a href="https://www.0796zz.com/html/kaifa/PHP/20210220/18091.html" target="_blank">PHP版微信小店接口开发实例</a></li><li><a href="https://www.0796zz.com/html/kaifa/PHP/20210112/16789.html" target="_blank">利用PHP获取网站访客的所在地位置</a></li><li><a href="https://www.0796zz.com/html/kaifa/PHP/20210221/18509.html" target="_blank">php运行报错Call to undefined function curl_in</a></li><li><a href="https://www.0796zz.com/html/kaifa/PHP/20201230/15544.html" target="_blank">PHP封装返回Ajax字符串和JSON数组的方法</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 © 2016-2023 https://www.0796zz.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>