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 输出 ...
随机推荐
- java ArrayList源码分析(转载)
1.ArrayList是一个相对来说比较简单的数据结构,最重要的一点就是它的自动扩容,可以认为就是我们常说的“动态数组”. 来看一段简单的代码: 12345 ArrayList<String&g ...
- 万里长征第二步——django个人博客(第四步 ——创建数据库)
在models.py内设置数据库模型 # -*- coding=utf-8 -*- from __future__ import unicode_literals from django.db imp ...
- SSH远程连接连接其他主机,等待时间过长的原因。
ssh远程连接登录到其他主机,输入登录用户名,等待时间很长时间,然后才出现输入密码的提示.导致这样时间过长,太慢了的原因有两个.(1)当使用ssh远程登录到某个IP时,这个IP的主机系统会读取/etc ...
- 用ACE来写代码
写在前面 在很多时候,我们想用一个支持高亮的WEB编辑器来做规则配置.代码编辑等,此时ACE应该是一个不错的选择,简单的用法如下: <!DOCTYPE html> <html lan ...
- Oracle之数据库安全
密码破解,大部分其实是通过枚举的方式,列出可能的密码,然后逐个尝试,直到找到真正的密码,有时也叫暴力破解.接下来,我们将举几个密码破解的例子. n 密码破解例1--- OrakelCrackert ...
- Linux系统443端口被占用无法启动解决办法
etstat -ano|findstr "443" //搜索443端口占用情况,并找到进程IDTCP 0.0.0.0:443 0.0.0.0:0 LISTENING ...
- 【License】一张图该诉你各种License的含义?
一张图该诉你各种License的含义:
- 转: 加快Android编译速度
转: http://timeszoro.xyz/2015/11/25/%E5%8A%A0%E5%BF%ABandroid%E7%BC%96%E8%AF%91%E9%80%9F%E5%BA%A6/ 加快 ...
- HDU 3726 Graph and Queries treap树
题目来源:HDU 3726 Graph and Queries 题意:见白书 思路:刚学treap 參考白皮书 #include <cstdio> #include <cstring ...
- 安装ADT的时候,提示“Cannot complete the install because one or more required items could not be
今天在安装ADT的时候,提示: Cannot complete the install because one or more required items could not be found. S ...