加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.cn/)- 低代码、办公协同、云通信、云计算、区块链!
当前位置: 首页 > 编程开发 > PHP > 正文

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

发布时间:2021-01-12 04:01:34 所属栏目: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.0769zz.cn/html/kaifa/PHP/20200907/8847.html" target="_blank">PHP应用:PHP实现将优酷土豆腾讯视频html地址转换成flash s</a></li><li><a href="https://www.0769zz.cn/html/kaifa/PHP/20201117/10131.html" target="_blank">PHP实现的简单操作SQLite数据库类与用法示例</a></li><li><a href="https://www.0769zz.cn/html/kaifa/PHP/20210221/15765.html" target="_blank">PHP单态模式简单用法示例</a></li><li><a href="https://www.0769zz.cn/html/kaifa/PHP/20210124/14932.html" target="_blank">php解决DOM乱码的方法示例代码</a></li><li><a href="https://www.0769zz.cn/html/kaifa/PHP/20201230/13092.html" target="_blank">PHP使用DOM和simplexml读取xml文档的方法示例</a></li><li><a href="https://www.0769zz.cn/html/kaifa/PHP/20210117/14503.html" target="_blank">PHP页面跳转实现延时跳转的方法</a></li><li><a href="https://www.0769zz.cn/html/kaifa/PHP/20201205/11547.html" target="_blank">PHP实现的简单异常处理类示例</a></li><li><a href="https://www.0769zz.cn/html/kaifa/PHP/20200908/9064.html" target="_blank">PHP应用:PHP递归实现文件夹的复制、删除、查看大小操作示例</a></li><li><a href="https://www.0769zz.cn/html/kaifa/PHP/20210112/14281.html" target="_blank">php字符集转换</a></li><li><a href="https://www.0769zz.cn/html/kaifa/PHP/20201215/12095.html" target="_blank">PHP7多线程搭建教程</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.0769zz.cn/html/kaifa/PHP/20210124/15237.html" target="_blank">CI框架使用composer安装的依赖包步骤与方法分析</a></li><li><a href="https://www.0769zz.cn/html/kaifa/PHP/20210111/13604.html" target="_blank">PHP实现二维数组去重功能示例</a></li><li><a href="https://www.0769zz.cn/html/kaifa/PHP/20201205/11271.html" target="_blank">PHP curl 或 file_get_contents 获取需要授权页面</a></li><li><a href="https://www.0769zz.cn/html/kaifa/PHP/20201118/10852.html" target="_blank">php简单构造json多维数组的方法示例</a></li><li><a href="https://www.0769zz.cn/html/kaifa/PHP/20201215/12192.html" target="_blank">PHP中file_put_contents追加和换行的实现方法</a></li><li><a href="https://www.0769zz.cn/html/kaifa/PHP/20210330/16073.html" target="_blank">php array_pop 删除数组最后一个元素实例</a></li><li><a href="https://www.0769zz.cn/html/kaifa/PHP/20210111/13504.html" target="_blank">PHP实现的文件操作类及文件下载功能示例</a></li><li><a href="https://www.0769zz.cn/html/kaifa/PHP/20210111/13769.html" target="_blank">PHP使用strrev翻转中文乱码问题的解决方法</a></li><li><a href="https://www.0769zz.cn/html/kaifa/PHP/20210112/13917.html" target="_blank">php实现给二维数组中所有一维数组添加值的方法</a></li><li><a href="https://www.0769zz.cn/html/kaifa/PHP/20200906/8379.html" target="_blank">PHP学习:修改yii2.0用户登录使用的user表为其它</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.0769zz.cn/ 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>