300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > php 64进制转16进制 PHP进制转换[实现2 8 16 36 64进制至10进制相互转换]

php 64进制转16进制 PHP进制转换[实现2 8 16 36 64进制至10进制相互转换]

时间:2022-03-28 14:57:15

相关推荐

php  64进制转16进制 PHP进制转换[实现2 8 16 36 64进制至10进制相互转换]

$mtime1= explode(" ", microtime());

$startTime= $mtime1[0] + $mtime1[1];?>

进制转换

注意:仅能进行10进制转换为2、8、16、36、62进制;或反转换。

* 项目: 进制转换

* 版本: 1.0

* 团队: 3Vshej

* 作者: 网游世界

* 功能: 10进制转换2、8、16、36、62进制

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

* ===========================================

* Copyright (c)

* 团队主页:* 团队信箱: 3vshej+[+=@]

* 创建日期: -11-3

* 修改日期: 暂无

* 修改说明: ----

* 版权声明: 免费软件

* ===========================================*/

classjinzhi_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) && ($linshi<36)) {$zifu.= chr($linshi+55);break;}if (($linshi>=36) && ($linshi<62)) {$zifu.= chr($linshi+61);break;}

$zifu.= $linshi;break;default:

$zifu.=$linshi;break;

}

$shu= intval($shu/$jinzhi);

}for ($i=strlen($zifu);$i

$zifu.="0";returnstrrev($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) && ($linshi<36)) {$zifu.= chr($linshi+55);break;}if (($linshi>=36) && ($linshi<62)) {$zifu.= chr($linshi+61);break;}

$zifu.= $linshi;break;default:

$zifu.=$linshi;break;

}

$shu=intval(bcdiv($shu,$jinzhi));

}for ($i=strlen($zifu);$i

$zifu.="0";returnstrrev($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= newjinzhi_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);?>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。