php 任意进制的数转换成10进制功能实例

内容摘要
这篇文章主要为大家详细介绍了php 任意进制的数转换成10进制功能实例,具有一定的参考价值,可以用来参考一下。

php将任意进制的数转换成10进制,例如8进制转换成10进制,16进制转
文章正文

这篇文章主要为大家详细介绍了php 任意进制的数转换成10进制功能实例,具有一定的参考价值,可以用来参考一下。

php将任意进制的数转换成10进制,例如8进制转换成10进制,16进制转换成10进制,对此感兴趣的朋友,看看idc笔记做的技术笔记。经测试代码如下:

/**
 * 任意进制的数转换成十进制
 * @param 
 * @arrange (www.idcnote.com)
 * 显示转换数字所涉及的步骤
 * 从任何基数(如八进制或十六进制)到基数10
 * 请参阅下面的示例
 **/
function show_convert_to_base_10 ($number, $base) 
{ 
    // If the number contains a decimal component 
    if (strstr ($number, '.')) 
    { 
        // Get the integer and decimal components 
        list ($integer, $decimal) = explode ('.', $number); 
    } 
    else 
    { 
        // The number is an integer 
        $integer = $number; 
    } 
      
    print "<b>Convert the base $base number $number to a 
        base 10 number:</b><blockquote>";
    print "Convert the integer component ($integer) of the 
         number:<blockquote>";
    // Compute the value of the integer component 
    // Loop through the integer digit by digit 
    // Reverse the number for easier handling 
    $integer = strrev ($integer); 
    $length  = strlen ($integer);
    for ($pos = 0; $pos < $length; ++$pos) 
    { 
        /* 
         PHP lets you treat strings and numbers like arrays 
         Specify an offset and get the character at that 
         position 
        */ 
          
        $digit = $integer[$pos]; 
          
        // Handle character values for digits 
        // (for bases greater than 10) 
        if (eregi ('[a-z]', $digit)) 
        { 
            $digit_value = 
                  (ord (strtolower ($digit)) 
                  - ord ('a')) + 10; 
                    
            $digit = "$digit ($digit_value)"; 
        } 
        else 
        { 
            $digit_value = $digit; 
        }
        // Multiply the current digit by the radix 
        // raised to the power of the current position 
        $result = $digit_value * pow ($base, $pos); 
          
        print "Multiply the value of the digit at position 
             $pos by the value of the radix ($base) raised 
             to the power of the position ($pos):<br />"; 
               
        print "$digit * $base<sup>$pos</sup> = $result 
             <br /><br />";
        $sums[] = $result; 
    } 
    print '</blockquote>';
    if (isset ($decimal)) 
    { 
         print "Convert the decimal component (0.$decimal) 
         of the number:<blockquote>"; 
          
        // Pad the number with a leading 0 so that we can 
        // start at position 1 
        $decimal = '0'.$decimal; 
        $length  = strlen ($decimal);
        for ($pos = 1; $pos < $length; ++$pos) { 
            $digit = $decimal[$pos]; 
              
            // Handle character values for digits 
            // (for bases greater than 10) 
            if (eregi ('[a-z]', $digit)) 
            { 
                 $digit_value = 
                    (ord (strtolower ($digit)) 
                    - ord ('a')) + 10;
                 $digit = "$digit ($digit_value)"; 
            } 
            else 
            { 
                 $digit_value = $digit; 
            } 
              
            // Multiply the current digit by the radix 
            // raised to the power of the current position 
            $result = $digit_value * pow (1/$base, $pos);
            print "Multiply the value of the digit at 
                position $pos by the value of the 1/radix 
                ($base) raised to the power of the position 
                ($pos):<br />"; 
                  
            print "$digit * 1/$base<sup>$pos</sup> = 
                $result<br /><br />";
            $sums[] = $result; 
        } 
        print '</blockquote>'; 
    }
    $sums = implode (' + ', $sums); 
    eval ("\$base_10_value = $sums;");
    print "</blockquote>The value of the base $base number 
        $number in base 10 is $base_10_value. <br />";
    print "This number is derived from the sum of the values 
        of the previous operations ($sums). <br /> <br />"; 
}


/***   代码来自php教程(www.idcnote.com)   ***/

注:关于php 任意进制的数转换成10进制功能实例的内容就先介绍到这里,更多相关文章的可以留意

代码注释

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!