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


Posted in PHP onApril 17, 2015

本文实例讲述了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 "<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程序设计有所帮助。

PHP 相关文章推荐
桌面中心(二)数据库写入
Oct 09 PHP
php 高效率写法 推荐
Feb 21 PHP
php更新mysql后获取影响的行数发生异常解决方法
Mar 28 PHP
ci检测是ajax还是页面post提交数据的方法
Nov 10 PHP
ThinkPHP中自定义错误页面和提示页面实例
Nov 22 PHP
php中有关合并某一字段键值相同的数组合并的改进
Mar 10 PHP
浅析Yii2集成富文本编辑器redactor实例教程
Apr 25 PHP
php简单复制文件的方法
May 09 PHP
Yii实现的多级联动下拉菜单
Jul 13 PHP
php下载文件,添加响应头的简单实例
Sep 22 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
May 24 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
Apr 06 PHP
php从数据库查询结果生成树形列表的方法
Apr 17 #PHP
php实现阿拉伯数字和罗马数字相互转换的方法
Apr 17 #PHP
php实现根据词频生成tag云的方法
Apr 17 #PHP
php计算两个坐标(经度,纬度)之间距离的方法
Apr 17 #PHP
php使用GD创建保持宽高比缩略图的方法
Apr 17 #PHP
PHP中preg_match正则匹配中的/u、/i、/s含义
Apr 17 #PHP
php和editplus正则表达式去除空白行
Apr 17 #PHP
You might like
基于mysql的bbs设计(一)
2006/10/09 PHP
php多文件上传下载示例分享
2014/02/20 PHP
利用laravel+ajax实现文件上传功能方法示例
2017/08/13 PHP
JavaScript 私有成员分析
2009/01/13 Javascript
JQuery防止退格键网页后退的实现代码
2012/03/23 Javascript
js中reverse函数的用法详解
2013/12/26 Javascript
jquery取子节点及当前节点属性值的方法
2014/09/09 Javascript
javascript实现按回车键切换焦点
2015/02/09 Javascript
JS实现窗口加载时模拟鼠标移动的方法
2015/06/03 Javascript
jQuery简单获取DIV和A标签元素位置的方法
2017/02/07 Javascript
JS排序之快速排序详解
2017/04/08 Javascript
详解windows下vue-cli及webpack 构建网站(三)使用组件
2017/06/17 Javascript
最新Javascript程序员面试试题和解题方法
2017/11/23 Javascript
如何用input标签和jquery实现多图片的上传和回显功能
2018/05/16 jQuery
详解Node.js异步处理的各种写法
2019/06/09 Javascript
python使用Berkeley DB数据库实例
2014/09/26 Python
Python实现控制台进度条功能
2016/01/04 Python
Python对list列表结构中的值进行去重的方法总结
2016/05/07 Python
Python中用字符串调用函数或方法示例代码
2017/08/04 Python
在Python web中实现验证码图片代码分享
2017/11/09 Python
Python实现字典按照value进行排序的方法分析
2017/12/23 Python
对python特殊函数 __call__()的使用详解
2019/07/02 Python
Python3使用xlrd、xlwt处理Excel方法数据
2020/02/28 Python
解决keras backend 越跑越慢问题
2020/06/18 Python
Virtualenv 搭建 Py项目运行环境的教程详解
2020/06/22 Python
美国最大的无人机经销商:DroneNerds
2018/03/20 全球购物
Puma印度官网:德国运动品牌
2019/10/06 全球购物
旅游管理专业大学生职业规划书
2014/02/27 职场文书
抽样调查项目计划书
2014/04/24 职场文书
竞争上岗演讲稿范文
2014/05/12 职场文书
祖国在我心中演讲稿600字
2014/09/23 职场文书
见习报告的格式
2014/10/31 职场文书
医德医风个人工作总结2014
2014/11/14 职场文书
活动总结书怎么写
2015/05/11 职场文书
2015年度对口支援工作总结
2015/07/22 职场文书
优秀团员主要事迹材料
2015/11/05 职场文书