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

2、8、16、36、62进制转换10进制
<?php
$mtime1 = explode(" ", microtime());
$startTime = $mtime1[] + $mtime1[];
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>进制转换</title>
</head>
<body>
<form id="jzh" name="jinzhih" method="post" action="<?php echo $_SERVER['PHP_SELF'].'?p=1';?>">
<input name="go" type="hidden" value="">
<table width="" border="" cellpadding="" cellspacing="" bordercolor="#FFE8E8" bgcolor="#F4F8FB">
<tr>
<td width=""><select name="jinzhi0" id="jinzhi0">
<option value=""></option>
<option value=""></option>
<option value="" selected="selected"></option>
<option value=""></option>
<option value=""></option>
<option value=""></option>
</select>
进制</td>
<td width=""><input name="zhi" type="text" id="zhi" /></td>
</tr>
<tr>
<td>进行<input name="lx" type="radio" value="" checked="checked" />
普通<input type="radio" name="lx" value="" />高精</td><td> </td>
</tr>
<tr>
<td>转换为
<select name="jinzhi1" id="jinzhi1">
<option value="" selected="selected"></option>
<option value=""></option>
<option value=""></option>
<option value=""></option>
<option value=""></option>
<option value=""></option>
</select>进制,</td><td>总长度为
<input name="changdu" type="text" id="changdu" value="" size="" maxlength="" />
字符。</td></tr><tr>
<td><input type="submit" name="Submit" value="提交" /></td>
<td><input type="reset" name="Submit2" value="重置" /></td>
</tr></table>
<p>注意:仅能进行10进制转换为2、、、、62进制;或反转换。</p></form>
<?php
/*
* ===========================================
* 项目: 进制转换
* 版本: 1.0
* 团队: 3Vshej
* 作者: 网游世界
* 功能: 10进制转换2、8、16、36、62进制
2、8、16、36、62进制转换10进制
* ===========================================
* Copyright (c) 2008
* 团队主页: http://www.3vshej.cn
* 团队信箱: 3vshej+163.com[+=@]
* 创建日期: 2008-11-3
* 修改日期: 暂无
* 修改说明: ----
* 版权声明: 免费软件
* ===========================================
*/
class jinzhi_class
{
//10进制转2、8、16、36、62进制 function jinzhih_0($shu,$jinzhi,$w)
{
$zifu = "";
while ($shu!=){
$linshi = $shu%$jinzhi;
switch ($jinzhi){
case :
$zifu = decbin($shu);
return $zifu;
case :
$zifu = decoct($shu);
return $zifu;
case :
$zifu = dechex($shu);
return $zifu;
case :
if ($linshi>=)
{
$zifu.= chr(($linshi+));
}else{
$zifu.= $linshi;}
break;
case :
if (($linshi>=) && ($linshi<)) {$zifu.= chr($linshi+);break;}
if (($linshi>=) && ($linshi<)) {$zifu.= chr($linshi+);break;}
$zifu.= $linshi;break;
default:
$zifu.= $linshi;
break;
}
$shu = intval($shu/$jinzhi);
}
for ($i=strlen($zifu);$i<$w;$i++)
$zifu.="";
return strrev($zifu);} //2、8、16、36、62进制转10进制 function jinzhih_1($zifu,$jinzhi,$w)
{ $shu=;
for ($i=;$i<=strlen($zifu)-;$i++)
{
$linshi = substr($zifu,$i,);
switch ($jinzhi){
case :
$shu = bindec($zifu);
$i=strlen($zifu)+;
break;
case :
$shu = octdec($zifu);
$i=strlen($zifu)+;
break;
case :
$shu = hexdec($zifu);
$i=strlen($zifu)+;
break;
case :
if (ord($linshi)<=)
{$shu+=(ord($linshi)-)*pow($jinzhi,strlen($zifu)-$i-);
}else{
$shu=$shu + (ord($linshi)-)*pow($jinzhi,strlen($zifu)-$i-);}
break;
case :
if (ord($linshi)<=)
{$shu+=$linshi*pow($jinzhi,strlen($zifu)-$i-);
}elseif ((ord($linshi)>=) && (ord($linshi)<=)){
$shu+= (ord($linshi)-)*pow($jinzhi,strlen($zifu)-$i-);
}else{
$shu+= (ord($linshi)-)*pow($jinzhi,strlen($zifu)-$i-);}
break;
}
}
return $shu; } //10进制高精度转换2、8、16、36、62进制 function jinzhih_G0($shu,$jinzhi,$w)
{
$zifu = "";
while ($shu!=){
$linshi = bcmod($shu,$jinzhi);
switch ($jinzhi){
case :
$zifu = decbin($shu);
return $zifu;
case :
$zifu = decoct($shu);
return $zifu;
case :
$zifu = dechex($shu);
return $zifu;
case :
if ($linshi>=)
{
$zifu.= chr(($linshi+));
}else{
$zifu.= $linshi;}
break;
case :
if (($linshi>=) && ($linshi<)) {$zifu.= chr($linshi+);break;}
if (($linshi>=) && ($linshi<)) {$zifu.= chr($linshi+);break;}
$zifu.= $linshi;break;
default:
$zifu.= $linshi;
break;
}
$shu = intval(bcdiv($shu,$jinzhi));
}
for ($i=strlen($zifu);$i<$w;$i++)
$zifu.="";
return strrev($zifu);} //2、8、16、36、62进制高精度转换10进制 function jinzhih_G1($zifu,$jinzhi,$w)
{ $shu= "";
for ($i=;$i<=strlen($zifu)-;$i++)
{
$linshi = substr($zifu,$i,);
switch ($jinzhi){
case :
$shu = bindec($zifu);
$i=strlen($zifu)+;
break;
case :
$shu = octdec($zifu);
$i=strlen($zifu)+;
break;
case :
$shu = hexdec($zifu);
$i=strlen($zifu)+;
break;
case :
if (ord($linshi)<=)
{$shu=bcadd($shu,bcmul((ord($linshi)-),bcpow($jinzhi,strlen($zifu)-$i-)));
}else{
$shu=bcadd($shu,bcmul((ord($linshi)-),bcpow($jinzhi,strlen($zifu)-$i-)));}
break;
case :
if (ord($linshi)<=)
{$shu=bcadd($shu,bcmul($linshi,bcpow($jinzhi,strlen($zifu)-$i-)));
}elseif ((ord($linshi)>=) && (ord($linshi)<=)){
$shu=bcadd($shu,bcmul((ord($linshi)-),bcpow($jinzhi,strlen($zifu)-$i-)));
}else{
$shu=bcadd($shu,bcmul((ord($linshi)-),bcpow($jinzhi,strlen($zifu)-$i-)));
}
break;
}
}
return $shu;}
} if (isset($_GET["p"]))
{if ($_GET["p"]===""){
echo "<p>";
echo "提示:<br>";
echo "32进制低精转换,最大值:2147483646<br>";
echo "32进制高精转换,最大值:77309411327<br>";
echo "64进制高精转换,最大值:133143986175<br>";
echo "</p>"; echo "值为:<font color=#ff0000><b>";
$Fs = new jinzhi_class();
if ($_POST['lx']=="" && $_POST['jinzhi0']=="")
{echo $Fs->jinzhih_0($_POST['zhi'],$_POST['jinzhi1'],$_POST['changdu'])."<br>";} if ($_POST['lx']=="" && $_POST['jinzhi0']=="")
{echo $Fs->jinzhih_G0($_POST['zhi'],$_POST['jinzhi1'],$_POST['changdu']);} if ($_POST['lx']=="" && $_POST['jinzhi0']<>"")
{echo $Fs->jinzhih_1($_POST['zhi'],$_POST['jinzhi0'],$_POST['changdu']);} if ($_POST['lx']=="" && $_POST['jinzhi0']<>"")
{echo $Fs->jinzhih_G1($_POST['zhi'],$_POST['jinzhi0'],$_POST['changdu']);}
}
echo "</b></font>";}
$mtime1 = explode(" ", microtime());
$endTime = $mtime1[] + $mtime1[];
printf ("<br>页面执行时间:%.6fs.</body></html>",$endTime-$startTime);
?>
PHP进制转换[实现2、8、16、36、64进制至10进制相互转换]的更多相关文章
- JS-011-颜色进制转换(RGB转16进制;16进制转RGB)
在网页开发的时候,经常需要进行颜色设置,因而经常需要遇到进行颜色进制转换的问题,例如:RGB转16进制:16进制转RGB),前几天在测试的时候,发现网站的颜色进制转换某类16进制颜色(例如:#0000 ...
- python27期day03:字符串详解:整型、可变数据类型和不可变数据类型、进制转换、索引、切片、步长、字符串方法、进制转换、作业题。
1.%s: a = "我是新力,我喜欢:%s,我钟爱:%s"b = a%("开车","唱跳rap")print(b)2.整型: 整数在Pyt ...
- python3 第十九章 - 写一个10进制转任意进制的函数
我们先回忆下之前所学的进制转换的知识(详见:第十章),10进制转其它进制的方法是: 整数部分,除基取余,逆序排列 小数部分,乘基取整,顺序排列 负数,按绝对值处理 好,假设我们需要转化的数都是正整数, ...
- 颜色转换、随机、16进制转换、HSV
颜色转换.随机.16进制转换.HSV: /** * * *-----------------------------------------* * | *** 颜色转换.随机.16进制转换.HSV * ...
- JS中的进制转换以及作用
js的进制转换, 分为2进制,8进制,10进制,16进制之间的相互转换, 我们直接利用 对象.toString()即可实现: //10进制转为16进制 ().toString() // =>&q ...
- SQLSERVER 16进制转10进制
原码.补码.反码参考: http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html 进制转换参考: http://ww ...
- js进制转换
var n = 17; var n2 = n.toString(2); var n8 = "0" + n.toString(8); var n16 = "0x" ...
- python模块介绍- binascii:二进制和ASCII互转以及其他进制转换
20.1 binascii:二进制和ASCII互转作用:二进制和ASCII互相转换. Python版本:1.5及以后版本 binascii模块包含很多在二进制和ASCII编码的二进制表示转换的方法.通 ...
- C#的格式化(进制转换|位运算)
1.首先做一下知识的普及C或c Currency 货币格式D或d Decimal 十进制格式E或e Exponent 指数格式F或f Fixed point (float)固定精度格式G或g Gene ...
- 进制转换 hdoj-2031
进制转换,原题目:hdoj-2031 题目描述: 输入两个整数,十进制数n(32位整数)和进制r(2<=r<=16 r!=10),求转换后的数. 输入: 7 2 23 12 -4 3 输出 ...
随机推荐
- 以下内容为Stackoverflow上整理以作纪录
PRO 用IMG标签 Use IMG plus alt attribute if the image is part of the content such as a logo or diagram ...
- gdc skin
https://www.gdcvault.com/play/1024410/Achieving-High-Quality-Low-Cost 这篇是教美术怎么用做地形那种方法 复用贴图 做skin的 做 ...
- 动态加入改动删除html表格内容
1.需求 须要实现收银台上加入改动删除商品信息时顾显能够实时看到其变化 2.解决 收银台和顾显通过tcp传输进行数据通信,顾显通过操作html中的表格进行数据加入改动和删除操作 3.代码 mytest ...
- CentOS6.6服务器系统配置(LAMP+phpMyAdmin)全流程
CentOS6.6服务器系统配置(LAMP+phpMyAdmin)全流程 昨天在腾讯云上买了个服务器,是CentOS6.6操作系统的裸机,里面什么都没,然后开始了一天一夜的LAMP(Apache+My ...
- BEA公司的weblogic是什么?有什么特点?
转自:http://zhidao.baidu.com/link?url=J9obKwHhuh1sdLoBC3pILeaq1nz_tcpScggBNeS3D0GzAz9FI002vlS2xxJD4_z6 ...
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-为什么无法打开官方范例的项目,打开tszip文件时提示尝试越过结尾怎么办
打开新的解决方案,找到tszip文件 提示错误Advanced Setting时越过结尾 到这里一般VS会卡死 但是我们已经可以得到解压出来的文件夹,其中包含PLC的完整项目文件夹,可以新 ...
- win 2003 / IIS6 部署网站的时候,文件IO操作、删除项目文件, 会导致IIS重启,Session丢失问题
项目中经常需要打些日志(文件IO读写操作),已记录调试.错误等信息.比较方便的有log4net等开源项目. 问题描述: 最近用win 2003 / IIS6,部署了一个2.0 的网站,在操作文件的时候 ...
- 算法笔记_124:密码脱落(Java)
一 问题描述 X星球的考古学家发现了一批古代留下来的密码.这些密码是由A.B.C.D 四种植物的种子串成的序列.仔细分析发现,这些密码串当初应该是前后对称的(也就是我们说的镜像串).由于年代久远,其中 ...
- 百度URL參数解析
百度URL參数解析 在用Python爬取百度搜索的内容时,发现百度搜索的url非常的长.往往会跟一大段的參数,但事实上非常多參数都是没有必要的,如相同是搜索javakeyword,能够通过 http: ...
- 读-《c++设计新思维-泛型编程与设计模式之应用》经典记录(英文书名:《modern c++ design》)
1.以设计为目标的程序库都必须帮助使用者完毕静止的设计.以实现使用者自己的constraints,而不是实现预先定义好的constraints. 2.Anything that can be done ...