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 "<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
, 转换
, 10进制
任意进制数
任意进制转换、c语言任意进制转换、任意进制转换算法、任意进制转换器、在线任意进制转换计算,以便于您获取更多的相关知识。

时间: 2024-09-19 09:52:24

php实现将任意进制数转换成10进制的方法_php技巧的相关文章

php将字符串全部转换成大写或者小写的方法_php技巧

本文实例讲述了php将字符串全部转换成大写或者小写的方法.分享给大家供大家参考.具体分析如下: php中可以通过strtolower和strtoupper两个函数将字符串中的每个英文字符全部转换成小写或者大写 <?php $string = "Learn PHP string functions at jb51.net"; $lower = strtolower($string); $upper = strtoupper($string); print("$lower\

javascript将浮点数转换成整数的三个方法_javascript技巧

Summary 暂时我就想到3个方法而已.如果读者想到其他好用方法,也可以交流一下 parseInt 位运算符 Math.floor Math.ceil Description 一.parseInt 1. 实例 parseInt("13nash");//13 parseInt("")// NaN parseInt("0xA") //10(十六进制) parseInt(" 13")//13 parseInt("070&

进制转换-java怎么把一个数组里面的16进制值转换成8进制,我想先把16进制转成2进制再转8进制

问题描述 java怎么把一个数组里面的16进制值转换成8进制,我想先把16进制转成2进制再转8进制 java怎么把一个数组里面的16进制值转换成8进制,我想先把16进制转成2进制再转8进制,但是老是运行出错.大神们能不能给个小例子解释一下,谢谢 解决方案 http://blog.csdn.net/vanezuo/article/details/6556768 解决方案二: 使用函数啊,你找一下,Java有相应的函数能做到 解决方案三: 如果你的程序出错,你贴出你的程序才知道. 也可以参考我给你的

10进制 16进制-Extjs中怎样将页面上的10进制数字转换成16进制的保存到数据库

问题描述 Extjs中怎样将页面上的10进制数字转换成16进制的保存到数据库 Extjs中怎样将页面上的10进制数字转换成16进制的保存到数据库 急啊 解决方案 var a=101; a=a.toString(16); alert(a);//用Ext.ajax发送a到服务器保存 http://docs.sencha.com/extjs/4.1.3/#!/api/Ext.Ajax 解决方案二: 1990(10)= 124 ×16+6 =(7×16+12)×16+6--乘出来= =7×16×16+1

c#-C#16进制转换成10进制的问题

问题描述 C#16进制转换成10进制的问题 C# int a = 0x00002EE5; int b = 5 + 15 * 16 + 15 * 16 * 16 + 2 * 16 * 16 * 16; int c = Convert.ToInt32(a); 运行结果 b = 12777 c = 12005 这是哪出现了问题? 解决方案 E是14,F是15,16进制0到F对应的值是0到15,你重新计算一下 5 + 14 * 16 + 14 * 16 * 16 + 2 * 16 * 16 * 16 =

JavaScript实现将xml转换成html table表格的方法_javascript技巧

本文实例讲述了JavaScript实现将xml转换成html table表格的方法.分享给大家供大家参考.具体如下: function ConvertToTable(targetNode) { // if the targetNode is xmlNode this line must be removed // i couldnt find a way to parse xml string to xml node // so i parse xml string to xml documen

怎么把一个40位的16进制转换成10进制啊

问题描述 如题.................. 解决方案 解决方案二:好歹给个具体的例子吧,然后16位都长度40了,正常的long也不够用,只能用System.Numerics.BigInteger来支持了解决方案三:取出最开始的1个数x16+第二个数以此类推,直到所有的数加完解决方案四:先转换成二进制再转换成十进制

js 字符串转换成数字的三种方法_javascript技巧

方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才能正确运行:对其他类型返回的都是NaN(Not a Number). 一些示例如下: 复制代码 代码如下: parseInt("1234blue");   //returns   1234parseInt("0xA");  

php将日期格式转换成xx天前的格式_php技巧

本文实例讲述了php将日期格式转换成xx天前格式的方法.分享给大家供大家参考.具体如下: 这段代码可以把时间格式化成3天前,5秒前,2年前的形式 // convert a date into a string that tells how long ago // that date was.... eg: 2 days ago, 3 minutes ago. function ago($d) { $c = getdate(); $p = array('year', 'mon', 'mday',