php將任意進位數轉換成10進位的方法

來源:互聯網
上載者:User
這篇文章主要介紹了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 copyrightfunction 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針對資料庫的讀取、判斷及session登陸的使用方法

php實現網頁緩衝的工具類的代碼及使用方法

php檔案上傳所涉及的檔案與表單操作及資料庫操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.