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 输出 ...
随机推荐
- toFixed()方法
1.定义 toFixed() 方法可把 Number 四舍五入为指定小数位数的数字. 2.示例 Show the number 13.37 with one decimal: <script t ...
- Cookie个数压缩存存储实践
提到cookie,大家都不会陌生的,几乎涉及到交互或统计的WEB系统都会使用到cookie,关于cookie的基础知识网上也有很多,这里推荐两篇文章: 聂微东的: http://www.cnblogs ...
- ylbtech-LanguageSamples-NamedAndOptional(命名和可选参数)
ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-NamedAndOptional(命名和可选参数) 1.A,示例(Sample) 返回顶 ...
- H5+CSS3简单动画 知识点 汇总
乱入几个: 1.h5的一个语义化标签 figure :用于规定独立的流内容(图像 图表 照片 代码等) figcapition:与figure配套使用,用于标签定义figure元素标题 2. ...
- 《深入理解Java虚拟机》笔记4
垃圾回收器是垃圾回收算法的实现,Java虚拟机的设计者为了 获取最大的性价比,也在不断改进中.硬件在不断变化,多核 的普及,基于单核的收集器应该已经没有太大意义了.Java7中 又新增了g1收集器,没 ...
- Servlet3.0使用@WebServlet注解配置问题记录
文档说@WebServlet的配置属性都是可选的,不是必需的. 经实践,将一个Servlet配置成load-on-startup的Servlet时,若只添加loadOnStartup属性,该Servl ...
- 转:关于android webview实践的文章集合
http://blog.csdn.net/jiangqq781931404/article/category/2681765
- Node.js abaike图片批量下载Node.js爬虫1.01版
//====================================================== // abaike图片批量下载Node.js爬虫1.01 // 1.01 修正了输出目 ...
- OpenCV 之 霍夫变换
Hough 变换,对图像中直线的残缺部分.噪声.以及其它的共存结构不敏感,因此,具有很强的鲁棒性. 它常用来检测 直线和曲线 (圆形),识别图像中的几何形状,甚至可用来分割重叠或有部分遮挡的物体. 1 ...
- ES6 数值扩展
1.Number.isNan 和 Number.isFinite Number.isNaN()用来检查一个值是否为NaN Number.isNaN(NaN) // true Number.isNaN( ...