之前不知道php自帶有base_convert可以實現任意進製之間的轉換,自己寫了乙個。。。。
<?php /**
* 進製轉換類
* @author sgf@funcity
* @version 2011-02-15
*/class hex
if($out_hex == $in_hex)
if($out_hex > self::$hex_max || $out_hex < self::$hex_min)
if($in_hex > self::$hex_max || $in_hex < self::$hex_min)
$hex_10 = $this->_conv2hex10($int,$in_hex);
return strtoupper($this->_conv_hex($hex_10,$out_hex)); }
/*** 將任意進製數字轉為10進製數字
*/ private fun程式設計客棧ction _conv2hex10($int,$in_hex)elseif( $in_hex== 2 && function_exists('bindec')) elseif($in_hex== 16 && function_exists('hexdec')) elseif($in_hex== 8 && function_exists('octdec'))
$array = array();
$result = 0;
for($i=0;$i $v)
$result += intval( pow($in_hex,$k) * $hex10_value ); }
return $result; }
/*** 把10進製數換成任意進製數
*/ private function _conv_hex($hex_10,$out_hex)else if( $out_hex==2 && function_exists('decbin')) elseif ( $out_hex ==16 && function_exists('dechex')) elseif ( $out_hex ==8 && function_exists('decoct'))
$array = array();
$result = "";
//利用10程式設計客棧進製數除任意進製數 倒取餘數法轉換。
do while ($hex_10>1);
foreach($array as $k)
return $result; }
}?>
本文標題: php實現的任意進製互轉類分享
本文位址:
任意進製與10進製的互轉 62進製
假設乙個r進製的數為an 1an 2an 3 a0 將其轉換為10進製的公式為 y an 1 rn 1 an 1 rn 2 a0 r0 r0的值為1,因此也可以寫為 y an 1 rn 1 an 1 rn 2 a0 公式1 公式1可以變形為 y a0 r w,其中 w an 1 rn a0為y r的...
C 實現任意進製的相互轉換
進製轉換是計算機內部時時刻刻都在進行活動,本篇文章也是進製轉換的演算法介紹,不過不同的是我想利用ascll編碼實現2到61之間任意進製的相互轉換,更大進製的表示方法只不過是十六進製制表示方法的延伸 用字母a到z表示整數10到35,字母a到z表示整數36到61。這樣就可以表示2到61之間的任意進製啦,...
C 實現任意進製的相互轉換
進製轉換是計算機內部時時刻刻都在進行活動,本篇文章也是進製轉換的演算法介紹,不過不同的是我想利用ascll編碼實現2到61之間任意進製的相互轉換,更大進製的表示方法只不過是十六進製制表示方法的延伸 用字母a到z表示整數10到35,字母a到z表示整數36到61。這樣就可以表示2到61之間的任意進製啦,...