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 相关文章推荐
使用PHP模拟HTTP认证
Oct 09 PHP
使用php统计字符串中中英文字符的个数
Jun 23 PHP
解析CI的AJAX分页 另类实现方法
Jun 27 PHP
IIS安装Apache伪静态插件的具体操作图文
Jul 01 PHP
PHP多进程编程实例
Oct 15 PHP
php查找指定目录下指定大小文件的方法
Nov 28 PHP
详解PHP实现定时任务的五种方法
Jul 25 PHP
php读取qqwry.dat ip地址定位文件的类实例代码
Nov 15 PHP
php PDO判断连接是否可用的实现方法
Apr 03 PHP
PHP实现的随机红包算法示例
Aug 14 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
Feb 07 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
Apr 17 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
php使用Jpgraph绘制饼状图的方法
2015/06/10 PHP
PHP经典算法集锦【经典收藏】
2016/09/14 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
可以支持多中格式的JS键盘
2007/05/02 Javascript
使用户点击后退按钮使效三行代码
2007/07/07 Javascript
js 蒙版进度条(结合图片)
2010/03/10 Javascript
JS之Date对象和获取系统当前时间详解
2014/01/13 Javascript
javascript无刷新评论实现方法
2015/05/13 Javascript
JS获取屏幕高度的简单实现代码
2016/05/24 Javascript
JS 实现可停顿的垂直滚动实例代码
2016/11/23 Javascript
js实现鼠标左右移动,图片也跟着移动效果
2017/01/25 Javascript
浅谈 Vue v-model指令的实现原理
2017/06/08 Javascript
使用D3.js创建物流地图的示例代码
2018/01/27 Javascript
深入浅析Vue.js中 computed和methods不同机制
2018/03/22 Javascript
javascript实现文件拖拽事件
2018/03/29 Javascript
使用pm2自动化部署node项目的方法步骤
2019/01/28 Javascript
vue不操作dom实现图片轮播的示例代码
2019/12/18 Javascript
Vue + Scss 动态切换主题颜色实现换肤的示例代码
2020/04/27 Javascript
下载给定网页上图片的方法
2014/02/18 Python
详解Python中的正则表达式的用法
2015/04/09 Python
python抓取网页中图片并保存到本地
2015/12/01 Python
批处理与python代码混合编程的方法
2016/05/19 Python
numpy 进行数组拼接,分别在行和列上合并的实例
2018/05/08 Python
详解解决Python memory error的问题(四种解决方案)
2019/08/08 Python
关于Numpy数据类型对象(dtype)使用详解
2019/11/27 Python
如何解决安装python3.6.1失败
2020/07/01 Python
海淘母婴商城:国际妈咪
2016/07/23 全球购物
收银员岗位职责
2014/02/07 职场文书
《我的伯父鲁迅先生》教学反思
2014/02/12 职场文书
名企HR怎样看待求职信
2014/02/23 职场文书
材料专业毕业生求职信
2014/02/26 职场文书
三严三实对照检查材料范文
2014/09/23 职场文书
党小组鉴定意见
2015/06/02 职场文书
python正则表达式re.search()的基本使用教程
2021/05/21 Python
Python Django获取URL中的数据详解
2021/11/01 Python
MybatisPlus EntityWrapper如何自定义SQL
2022/03/22 Java/Android