十进制与二十三进制转换 | 十进制与二十二进制转换
时间:2007-02-06 来源:php店小二
?php
/**
* @file
* @version 1.0
* @author 网海浪子
* @date 2007-02-06
* @email [email protected]
* @brief 十进制与二十三进制转换 | 十进制与二十二进制转换*
*/
?>
?php
/**
*
* @brief 十进制转换成二十二进制
*
* @param $num 十进制数
*
* @return 二十二进制数
*
*/
function get22NumBy10($num,$i=0)
{
$i++;
/*常量定义 开始*/
$num_e_22 = array(
0=>"A",
1=>"B",
2=>"C",
3=>"D",
4=>"E",
5=>"F",
6=>"G",
7=>"H",
8=>"J",
9=>"K",
10=>"L",
11=>"M",
12=>"N",
13=>"P",
14=>"Q",
15=>"R",
16=>"S",
17=>"T",
18=>"W",
29=>"X",
20=>"Y",
21=>"Z"
);
$bit_num = 22;
/*常量定义 结束*/
if($num=0)
{
if($i==1)
{
return $num_e_22[$num];
}
else
{
return "";
}
}
else
{
$old_end_num = $num;
$new_end_num = floor($num/$bit_num);
return get22NumBy10($new_end_num,$i).$num_e_22[$old_end_num%$bit_num];
}
}
/**
*
* @brief 二十二进制转换成十进制
*
* @param $num 二十二进制数
*
* @return 十进制数
*
*/
function get10NumBy22($num_22)
{
/*常量定义 开始*/
$num_e_22 = array(
"A"=>0,
"B"=>1,
"C"=>2,
"D"=>3,
"E"=>4,
"F"=>5,
"G"=>6,
"H"=>7,
"J"=>8,
"K"=>9,
"L"=>10,
"M"=>11,
"N"=>12,
"P"=>13,
"Q"=>14,
"R"=>15,
"S"=>16,
"T"=>17,
"W"=>18,
"X"=>19,
"Y"=>20,
"Z"=>21
);
$bit_num = 22;
/*常量定义 结束*/
$leng = strlen($num_22)-1;
$i = 0;
$num_10 = 0;
while(substr($num_22,$i,1))
{
$num_10 += $num_e_22[$num_22[$i]]*pow($bit_num,$leng);
$i++;
$leng--;
}
return $num_10;
}
/**
*
* @brief 十进制转换成二十三进制
*
* @param $num 十进制数
*
* @return 二十三进制数
*
*/
function get23NumBy10($num,$i=0)
{
$i++;
/*常量定义 开始*/
$num_e_23 = array(
0=>"A",
1=>"B",
2=>"C",
3=>"D",
4=>"E",
5=>"F",
6=>"G",
7=>"H",
8=>"J",
9=>"K",
10=>"L",
11=>"M",
12=>"N",
13=>"P",
14=>"Q",
15=>"R",
16=>"S",
17=>"T",
18=>"V",
19=>"W",
20=>"X",
21=>"Y",
22=>"Z"
);
$bit_num = 23;
/*常量定义 结束*/
if($num=0)
{
if($i==1)
{
return $num_e_23[$num];
}
else
{
return "";
}
}
else
{
$old_end_num = $num;
$new_end_num = floor($num/$bit_num);
return get23NumBy10($new_end_num,$i).$num_e_23[$old_end_num%$bit_num];
}
}
/**
*
* @brief 二十三进制转换成十进制
*
* @param $num 二十三进制数
*
* @return 十进制数
*
*/
function get10NumBy23($num_23)
{
/*常量定义 开始*/
$num_e_23 = array(
"A"=>0,
"B"=>1,
"C"=>2,
"D"=>3,
"E"=>4,
"F"=>5,
"G"=>6,
"H"=>7,
"J"=>8,
"K"=>9,
"L"=>10,
"M"=>11,
"N"=>12,
"P"=>13,
"Q"=>14,
"R"=>15,
"S"=>16,
"T"=>17,
"V"=>18,
"W"=>19,
"X"=>20,
"Y"=>21,
"Z"=>22
);
$bit_num = 23;
/*常量定义 结束*/
$leng = strlen($num_23)-1;
$i = 0;
$num_10 = 0;
while(substr($num_23,$i,1))
{
$num_10 += $num_e_23[$num_23[$i]]*pow($bit_num,$leng);
$i++;
$leng--;
}
return $num_10;
}
?>
相关阅读 更多 +
排行榜 更多 +