加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-12 21:59:16 所属栏目:PHP教程 来源:网络整理
导读:本篇章节讲解PHP进制转换。供大家参考研究具体如下: 可以实现: 10进制转换2、8、16、36、62进制 2、8、16、36、62进制转换10进制 有点要注意下,2、8、16进制转换时,使用的是系统的自己的函数。 所以,不管怎么高精度转换值可能大于2147483646

本篇章节讲解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> </div> <p><span style="color: #800000"><h3>PS:这里再为大家推荐几款计算与转换工具供大家参考使用:</h3></p> <p><span style="color: #ff6600"><h3>在线任意进制转换工具: </h3></p> <p><span style="color: #ff6600"><h3>科学计算器在线使用_高级计算器在线计算: </h3></p> <p><span style="color: #ff6600"><h3>在线计算器_标准计算器: </h3></p> <p>更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《》</p> <p>希望本文所述对大家PHP程序设计有所帮助。</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.lidatong.com.cn/html/jc/php/2020/1213/83942.html" target="_blank">php实现检查文章是否被百度收录</a></li><li><a href="https://www.lidatong.com.cn/html/jc/php/2020/1213/109975.html" target="_blank">php – 使用私有属性迭代对象</a></li><li><a href="https://www.lidatong.com.cn/html/jc/php/2020/1213/137557.html" target="_blank">php的mysql&#92;mysqli&#92;PDO(三)PDO</a></li><li><a href="https://www.lidatong.com.cn/html/jc/php/2020/1212/79512.html" target="_blank">PHP常用字符串函数小结(推荐)</a></li><li><a href="https://www.lidatong.com.cn/html/jc/php/2020/1212/71007.html" target="_blank">PHP的反射类ReflectionClass、ReflectionMethod使用实例</a></li><li><a href="https://www.lidatong.com.cn/html/jc/php/2020/1213/133444.html" target="_blank">Antlr v4入门教程和实例</a></li><li><a href="https://www.lidatong.com.cn/html/jc/php/2020/1212/72580.html" target="_blank">微信公众平台消息接口校验与消息接口响应实例</a></li><li><a href="https://www.lidatong.com.cn/html/jc/php/2020/1213/136081.html" target="_blank">acdreamer 1221&amp;&amp;sgu204 (三分)</a></li><li><a href="https://www.lidatong.com.cn/html/jc/php/2020/1213/148159.html" target="_blank">php – MySQL从另一个表插入国家iso或国家ID</a></li><li><a href="https://www.lidatong.com.cn/html/jc/php/2020/1213/146884.html" target="_blank">php – Composite模式带给我的只有Array有什么优势?</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.lidatong.com.cn/html/jc/php/2020/1213/83234.html" target="_blank">php采用file_get_contents代替使用curl实例</a></li><li><a href="https://www.lidatong.com.cn/html/jc/php/2020/1213/93883.html" target="_blank">PHP:是urlencode()一种安全的方法来允许URL中有</a></li><li><a href="https://www.lidatong.com.cn/html/jc/php/2020/1213/115870.html" target="_blank">php – Nginx不会将Cookie传递给代理</a></li><li><a href="https://www.lidatong.com.cn/html/jc/php/2020/1212/77064.html" target="_blank">php实现文章置顶功能的方法</a></li><li><a href="https://www.lidatong.com.cn/html/jc/php/2020/1213/127989.html" target="_blank">Letter Combinations of a Phone Number</a></li><li><a href="https://www.lidatong.com.cn/html/jc/php/2020/1213/99297.html" target="_blank">php – Yii2 renderAjax嵌套Listview</a></li><li><a href="https://www.lidatong.com.cn/html/jc/php/2020/1213/113187.html" target="_blank">php – 尝试使用Codeception和Yii2接受本机js弹出</a></li><li><a href="https://www.lidatong.com.cn/html/jc/php/2020/1213/86413.html" target="_blank">thinkPHP导出csv文件及用表格输出excel的方法</a></li><li><a href="https://www.lidatong.com.cn/html/jc/php/2020/1213/132353.html" target="_blank">PHP自动捕捉页面500错误示例</a></li><li><a href="https://www.lidatong.com.cn/html/jc/php/2020/1213/91242.html" target="_blank">php – MySQL Select Statement,WHERE’IN’子句</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 © 2008-2022 https://www.lidatong.com.cn/ All Rights Reserved. 李大同</p> <p><script type="text/javascript" src="//js.users.51.la/21280179.js"></script></p> </div> </body> </html>