php實現將任意進位數轉換成10進位的方法,php進位_PHP教程

來源:互聯網
上載者: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 "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程式設計有所協助。

http://www.bkjia.com/PHPjc/985264.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/985264.htmlTechArticlephp實現將任意進位數轉換成10進位的方法,php進位 本文執行個體講述了php實現將任意進位數轉換成10進位的方法。分享給大家供大家參考。具體...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.