189 8069 5689

如何在PHP项目中实现一个进制转换功能-创新互联

这篇文章主要介绍了如何在PHP项目中实现一个进制转换功能,此处通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考价值,需要的朋友可以参考下:

10年积累的成都做网站、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计制作后付款的网站建设流程,更有循化免费网站建设让你可以放心的选择与我们合作。

php有什么用

php是一个嵌套的缩写名称,指的是英文超级文本预处理语言(php:Hypertext Preprocessor)的缩写,它的语法混合了C、Java、Perl以及php自创新的语法,主要用来做网站开发,许多小型网站都用php开发,因为php是开源的,从而使得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,$jinzhi,$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,$jinzhi,$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,$jinzhi,$w)
 { $shu= "";
  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=bcadd($shu,bcmul((ord($linshi)-48),bcpow($jinzhi,strlen($zifu)-$i-1)));
     }else{
       $shu=bcadd($shu,bcmul((ord($linshi)-55),bcpow($jinzhi,strlen($zifu)-$i-1)));}
       break;
     case 62:
      if (ord($linshi)=57)
      {$shu=bcadd($shu,bcmul($linshi,bcpow($jinzhi,strlen($zifu)-$i-1)));
     }elseif ((ord($linshi)>=65) && (ord($linshi)=90)){
      $shu=bcadd($shu,bcmul((ord($linshi)-55),bcpow($jinzhi,strlen($zifu)-$i-1)));
      }else{
      $shu=bcadd($shu,bcmul((ord($linshi)-61),bcpow($jinzhi,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['jinzhi1'],$_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['jinzhi0'],$_POST['changdu']);}
}
echo "";}
$mtime1 = explode(" ", microtime());
$endTime = $mtime1[0] + $mtime1[1];
printf ("页面执行时间:%.6fs.",$endTime-$startTime);
?></pre><p>到此这篇关于如何在PHP项目中实现一个进制转换功能的文章就介绍到这了,更多相关如何在PHP项目中实现一个进制转换功能的内容请搜索创新互联<a href="https://www.cdcxhl.com/" target="_blank">网站建设公司</a>,以前的文章或继续浏览下面的相关文章希望大家以后多多支持创新互联网站建设公司,!</p>            <br>
            新闻名称:如何在PHP项目中实现一个进制转换功能-创新互联            <br>
            本文来源:<a href="http://jkwzsj.com/article/eohdg.html">http://jkwzsj.com/article/eohdg.html</a>
        </div>
    </div>
    <div class="other">
        <h3>其他资讯</h3>
        <ul>
            <li>
                    <a href="/article/igcdep.html">mac安装python3.6的方法</a>
                </li><li>
                    <a href="/article/igcdss.html">phpfpm没有pdo模块如何解决</a>
                </li><li>
                    <a href="/article/igcddg.html">.Net多线程编程中的误用点有哪些</a>
                </li><li>
                    <a href="/article/igcddo.html">虚拟主机能安装证书吗</a>
                </li><li>
                    <a href="/article/igcdoc.html">androidstudio3.5中怎么使用recycleview的包</a>
                </li>        </ul>
    </div>
</div>
<footer>
    <div class="foot container">
        <div class="footl fl">
            <h3>联系我们</h3>
            <dl>
                您好HELLO!<br>
                感谢您来到成都网站建设公司,若您有合作意向,请您为我们留言或使用以下方式联系我们,

                我们将尽快给你回复,并为您提供真诚的设计服务,谢谢。
            </dl>
            <ul>
                <li>电话:028- <span>86922220 18980695689</span></li>
                <li>商务合作邮箱:631063699@qq.com</li>
                <li>合作QQ: 532337155</li>
                <li>成都网站设计地址:成都市青羊区锣锅巷31号五金站写字楼6楼</li>
            </ul>
        </div>
        <div class="footr fr">
            <h3>乐尚佳建站工作室</h3>
            <dl>
                成都乐尚佳网站建设公司拥有多年以上互联网从业经验的精英团队,始终保持务实的风格,以"帮助客户成功"为已任,专注于提供对客户有价值的服务。

                我们已为众企业及上市公司提供专业的网站建设服务。我们不只是一家网站建设的网络公司;我们对营销、技术、管理都有自己独特见解,乐尚佳建站采取“创意+综合+营销”一体化的方式为您提供更专业的服务!
            </dl>
            <h3>乐尚佳观点</h3>
            <dl>
                相对传统的成都网站建设公司而言,乐尚佳鼎是互联网中的网站品牌策划精英,我们精于企业品牌与互联网相结合的整体战略服务。<br>
                我们始终认为,网站必须注入企业基因,真正使网站成为企业vi的一部分,让整个网站品牌策划体系变的深入而持久。
            </dl>
        </div>
    </div>
    <div class="link">
        <div class="container"> <span> 友情链接:</span>
            <a href="https://www.cdcxhl.cn/
" title="免备案虚拟主机空间" target="_blank">免备案虚拟主机空间</a>   <a href="http://www.jawzsj.com/" title="吉安网站建设" target="_blank">吉安网站建设</a>   <a href="http://www.gyjike.cn/" title="川银永信" target="_blank">川银永信</a>   <a href="http://www.cdhuace.com/fuwu.html" title="名片" target="_blank">名片</a>   <a href="https://www.cdcxhl.cn/
" title="腾讯免备案空间" target="_blank">腾讯免备案空间</a>   <a href="http://www.4006tel.net/mobile/" title="app开发" target="_blank">app开发</a>   <a href="http://www.cxhljz.cn/" title="成都网站建设公司" target="_blank">成都网站建设公司</a>   <a href="http://www.ybwzjz.com/" title="宜宾网站营销推广" target="_blank">宜宾网站营销推广</a>   <a href="http://www.jinhuajc.com/" title="成都橡塑保温管" target="_blank">成都橡塑保温管</a>   <a href="http://www.dzwzjz.com/" title="达州网站设计" target="_blank">达州网站设计</a>           </div>
    </div>
      <div class="copy">