• 技术文章 >后端开发 >php教程

    php实现将任意进制数转换成10进制的方法,php进制_PHP教程

    2016-07-13 09:56:54原创345

    php实现将任意进制数转换成10进制的方法,php进制


    本文实例讲述了php实现将任意进制数转换成10进制的方法。分享给大家供大家参考。具体如下:

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

    <?php
    # Show the steps involved in converting a number 
    # from any base (like octal or hex) to base 10
    # See below for examples, instructions and copyright
    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 "Convert the base $base number $number to a
      base 10 number:
    "; print "Convert the integer component ($integer) of the number:
    "; // 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):
    "; print "$digit * $base$pos = $result

    "; $sums[] = $result; } print '
    '; if (isset ($decimal)) { print "Convert the decimal component (0.$decimal) of the number:
    "; // 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):
    "; print "$digit * 1/$base$pos = $result

    "; $sums[] = $result; } print '
    '; } $sums = implode (' + ', $sums); eval ("\$base_10_value = $sums;"); print "
    The value of the base $base number $number in base 10 is $base_10_value.
    "; print "This number is derived from the sum of the values of the previous operations ($sums).

    "; }

    希望本文所述对大家的php程序设计有所帮助。

    www.bkjia.comtruehttp://www.bkjia.com/PHPjc/985264.htmlTechArticlephp实现将任意进制数转换成10进制的方法,php进制 本文实例讲述了php实现将任意进制数转换成10进制的方法。分享给大家供大家参考。具体...

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 转换 进制 进制转换
    上一篇:微信自定义菜单的处理开发示例,微信自定义示例_PHP教程 下一篇:微信access_token的获取开发示例,access_token示例_PHP教程
    千万级数据并发解决方案

    相关文章推荐

    • 用PHP实现自己的sha-256哈希算法!• 让php5.1.6支持json_encode()解决方案• 今日开始带两个实习生做php(2)• 求解一题!该怎么解决• zend debugger 如何安装
    1/1

    PHP中文网