創作內容

3 GP

(Java程式碼) 任何進位→10進位

作者:深海異音│2013-11-03 18:27:48│贊助:6│人氣:916
進位轉換:
【任何進位】 轉成 【10進位】,並且印出算式



截圖


01.


02.


03.





程式碼



import  java.io.BufferedReader;
import  java.io.IOException;
import  java.io.InputStreamReader;

public  class  zhuan_shi {

      //  顯示指數
      public  static  String ci_fang(int  a)  {
             String  s  =  String.valueOf(a);
             s =  s.replace("0",  "⁰");
             s =  s.replace("1",  "¹");
             s =  s.replace("2",  "²");
             s =  s.replace("3",  "³");
             s =  s.replace("4",  "⁴");
             s =  s.replace("5",  "⁵");
             s =  s.replace("6",  "⁶");
             s =  s.replace("7",  "⁷");
             s =  s.replace("8",  "⁸");
             s =  s.replace("9",  "⁹");
             return  s;
      }


      //  英文轉數字
      public  static  int  ying_zhuan_shu(String  s)  {
             String[]  y  =  {  "A",  "B",  "C",  "D",  "E",  "F",  "G",  "H",  "I",  "J",  "K",
                          "L",  "M",  "N",  "O",  "P",  "Q",  "R",  "S",  "T",  "U",  "V",  "W",
                          "X",  "Y",  "Z"  };
             int[]  z  =  {  10,  11,  12,  13,  14,  15,  16,  17,  18,  19,  20,  
                          21,  22,  23,  24, 25,  26,  27,  28,  29,  30,  31,  32,
                          33,  34,  35  };
             for  (int  i  =  0;  i  <=  25;  i++)  {
                   if  (s.toUpperCase().equals(y[i]))  {
                          return  z[i];
                   }
             }
             return  Integer.valueOf(s);
      }


      public  static  void  main(String[] args)  throws  IOException {
          
              BufferedReader  sc  =  new  BufferedReader(
new
  InputStreamReader(System.in));

             System.out.println("任何進位10進位\n//-----------------------");

             System.out.print("輸入進位值:");
             int  jin_wei =  Integer.valueOf(sc.readLine());//  進位值

             System.out.print("輸入轉換的數字:");
             String  shu_ru =  sc.readLine();//  輸入的值

             int  chang  =  shu_ru.length();//  長度
             int[]  zan_cuen =  new  int[chang  +  1];//  暫存
             long  sum  =  0;//  答案的加總
             String  a1,  a2,  a3;
             boolean  cuo  =  false;//  判斷是否有錯誤
             String  cuo_zi =  "";//  顯示的錯誤內容
             String  in  =  "";//  最後顯示的結果

             in +=  (jin_wei  +  "進位:"  +  shu_ru +  "    10進位\n\n");

             for  (int  i  =  0;  i  <=  chang  -  1;  i++)  {

                   if  (i  ==  chang  -  1)  {
                          a1  =  "";
                   }  else  {
                          a1  =  shu_ru.substring(0,  chang  -  (i  +  1));
                   }

                   //  取得目前要被轉換的數字
                   a2  =  shu_ru.substring(chang  -  (i  +  1),  chang  -  i);

                   if  (i  ==  0)  {
                          a3  =  "";
                   }  else  {
                          a3  =  shu_ru.substring(chang  -  i,  chang);
                   }

                   zan_cuen[i]  =  (int)  (Integer.valueOf(ying_zhuan_shu(a2))  *  Math
                                .pow(jin_wei,  i));//  暫存(  a2*進位值^i  )

                   if  (zan_cuen[i] >  2100000000)  {
                          cuo  =  true;//  超過21
                          cuo_zi  =  "你入的數字太大(計算結果超過21億將無法計算)";//  顯示的錯誤內容
                   }

                   in  +=  (a1  +  ""  +  a2  +  ""  +  a3  +  
                               "   "  +  a2  +  "×"  +  jin_wei
                                +  ci_fang(i)  +  "  =  "
                                +  String.format("%2d",  ying_zhuan_shu(a2))  +  "×"
                                +  (int)  Math.pow(jin_wei,  i)  +  
                               " =  "  +  zan_cuen[i]  +  "\n");

             }

             in +=  "\n";

             for  (int  i  =  0;  i  <=  chang  -  1;  i++)  {
                   sum  +=  zan_cuen[i];
                   if  (i  ==  chang  -  1)  {
                          in  +=  (zan_cuen[i]);//  如果是最後一個數字,則不印出"+"
                   }  else  {
                          in  +=  (zan_cuen[i]  +  "+");
                   }
             }

             if  (cuo  ==  true)  {
                   in  =  ("檢視結果:\n"  +  cuo_zi);
                   
             }

             in +=  ("\n答案=  "  +  sum);
             System.out.println(in);//  顯示計算結果
             System.gc();//  釋放記憶體
      }
}

引用網址:https://home.gamer.com.tw/TrackBack.php?sn=2230559
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

3喜歡★hbl917070 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:(Java程式碼) 10... 後一篇:(Java程式碼) 16...

追蹤私訊

作品資料夾

pumpkin20xx自己
努力創作中ଘ(੭ˊᵕˋ)੭✧看更多我要大聲說昨天19:05


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】