≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 网络编程 > PHP笔记

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

人气:516 时间:2018-09-19

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

php将任意进制的数转换成10进制,例如8进制转换成10进制,16进制转换成10进制,感兴趣的小伙伴,下面一起跟随四海网的小编罗X来看看吧。
经测试代码如下:

/**
 * 任意进制的数转换成十进制
 * @param 
 * @arrange (512.笔记) www.q1010.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 />"; 
}


/***   代码来自四海网(www.q1010.com)   ***/

本文来自:http://www.q1010.com/173/439-0.html

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

关键词:10进制

您可能感兴趣的文章

上一篇:php 对两个数组进行减法操作的简单示例
下一篇:php 从数据库查询结果生成树形列表的简单示例
热门文章
  • PHP 写入WRITE编码为UTF8的文件示例
  • PHP 中文字符串截取函数示例:支持gb2312,gbk,big
  • PHP 简单留言板的制作示例
  • 解决Fatal error: Call to undefined function mb_convert_encoding() in错误问题
  • PHP语言基础(标记、注释、变量、数组、常量、函数)示例
  • php 生成迅雷链接的简单示例
  • php 获取短网址的实现方法
  • PHP 通用分页类的简单示例
  • PHP 使用文件方式导入导出整个MYSQL数据库的实现方法
  • php 获取MYSQL错误的简单示例
  • 最新文章
    • 解决PHP使用redis实现统计缓存MySQL压力的问题
    • php 简单的上传进度条的简单示例
    • php 给html中引用的js和css路径打上版本号的实现方法
    • php 实现计算年龄精准到年月日的实例
    • php+ajax无刷新分页的简单示例
    • 解决php+ajax无刷新上传图片的问题
    • 解决PHP生成HTML静态页面的问题
    • 解决PHP使用uniqid函数生成唯一ID的问题
    • 解决PHP防刷票的一些问题
    • 微信access_token的获取开发的实现方法

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。