• 首頁 »
  • PHP
  • » [程式/筆記] 如何用遞迴方法將 10 進位轉 16 進位
    上一篇:

    [程式/筆記] 如何用遞迴方法將 10 進位轉 16 進位

    目前許多程式語言都有內建函數,讓我們能輕鬆的從10進位轉為16進位、2進位或是8進位。今天來介紹如何利用遞迴方法來完成。剛開始寫這個的時候想說應該很簡單,但還是稍微想了一下流程圖才出來,在這邊分享給大家,至於16進位的邊就不多作介紹了,純粹分享程式碼,示範網頁在下方有連結。

    為了方便效果呈現,我把它寫成PHP網頁的形式,不過原理大同小異。

    #PHP

    <?php
    function Hex($a){ 
        $e= (integer)($a/16);
        $remainder = $a % 16;
        if ($e == 0) {
            if($a<16){
                switch ($remainder) {
                case '10':
                    $result = "A";
                    break;
                case '11':
                    $result = "B";
                    break;
                case '12':
                    $result = "C";
                    break;
                case '13':
                    $result = "D";
                    break;
                case '14':
                    $result = "E";
                    break;
                case '15':
                    $result = "F";
                    break;
                default:
                    $result = $remainder;
                    break;
                }
                return $result;
            }
            else return '';
        } 
        else {
            switch ($remainder) {
                case '10':
                    $result = "A";
                    break;
                case '11':
                    $result = "B";
                    break;
                case '12':
                    $result = "C";
                    break;
                case '13':
                    $result = "D";
                    break;
                case '14':
                    $result = "E";
                    break;
                case '15':
                    $result = "F";
                    break;
                default:
                    $result = $remainder;
                    break;
            }
            return Hex($e).$result;
        }
    }
    ?>
    Advertisement
    Follow US
    About Post
    Date: 2015.12.05 Tags: , , , , , , , , ,
    Discussion

    Leave a Reply