300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > php实现进制转换计算器 利用php怎么实现一个进制转换功能

php实现进制转换计算器 利用php怎么实现一个进制转换功能

时间:2021-02-05 23:35:07

相关推荐

php实现进制转换计算器 利用php怎么实现一个进制转换功能

利用php怎么实现一个进制转换功能

发布时间:-12-14 16:29:23

来源:亿速云

阅读:69

作者:Leah

本篇文章为大家展示了利用php怎么实现一个进制转换功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

实现方法如下<?php

/**

*进制转换类

*@authorsgf@funcity

*@version-02-15

*/

ClassHex{

privatestatic$element=array(

'0','1','2','3','4','5','6','7','8','9',

'A','B','C','D','E','F','G','H','I','J',

'K','L','M','N','O','P','Q','R','S','T',

'U','V','W','X','Y','Z'

);

privatestatic$hex_min=2;

privatestatic$hex_max=36;

/**

*进制转换

*/

publicfunctionconv($int,$out_hex,$in_hex=10,$use_system=true){

if($use_system&&function_exists('base_convert')){

returnstrtoupper(base_convert($int,$in_hex,$out_hex));

}

if($out_hex==$in_hex){

return$int;

}

if($out_hex>self::$hex_max||$out_hex

returnfalse;

}

if($in_hex>self::$hex_max||$in_hex

returnfalse;

}

$hex_10=$this->_conv2hex10($int,$in_hex);

returnstrtoupper($this->_conv_hex($hex_10,$out_hex));

}

/**

*将任意进制数字转为10进制数字

*/

privatefunction_conv2hex10($int,$in_hex){

$int=strtoupper(trim($int));

if($in_hex==10){

return$int;

}elseif($in_hex==2&&function_exists('bindec')){

returnbindec($int);

}elseif($in_hex==16&&function_exists('hexdec')){

returnhexdec($int);

}elseif($in_hex==8&&function_exists('octdec')){

returnoctdec($int);

}

$array=array();

$result=0;

for($i=0;$i

array_unshift($array,substr($int,$i,1));//插入到数组头部(既倒序)

}

foreach($arrayas$k=>$v){

$hex10_value=array_search($v,self::$element);

if($hex10_value==-1){

returnfalse;

}

$result+=intval(pow($in_hex,$k)*$hex10_value);

}

return$result;

}

/**

*把10进制数换成任意进制数

*/

privatefunction_conv_hex($hex_10,$out_hex){

$hex_10=intval($hex_10);

if($out_hex==10){

return$hex_10;

}elseif($out_hex==2&&function_exists('decbin')){

returndecbin($hex_10);

}elseif($out_hex==16&&function_exists('dechex')){

returndechex($hex_10);

}elseif($out_hex==8&&function_exists('decoct')){

returndecoct($hex_10);

}

$array=array();

$result="";

//利用10进制数除任意进制数倒取余数法转换。

do{

array_unshift($array,$hex_10%$out_hex);//余数插入到数组数组第1个位置。

$hex_10=$hex_10/$out_hex;//除法

}while($hex_10>1);

foreach($arrayas$k){

$result.=self::$element[$k];

}

return$result;

}

}

?>

上述内容就是利用php怎么实现一个进制转换功能,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

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