創作內容

1 GP

(Java程式碼) 8進位→2進位

作者:深海異音│2013-11-03 22:47:43│贊助:2│人氣:694
進位轉換:
8進位】 轉成 【2進位】,並且印出算式



8進位要轉成2進位的方法
8=2*2*2
表示【1個8進位的數字】變成【3個2進位的數字】,
0(8)=000(2)
1=001、2=010、3=011、
4=100、5=101、6=110、
7=111,到8就進位



截圖






程式碼


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

public  class  _8_to_2  {

      //  顯示全型數字
      public  static  String  quan_xing(String  s)  {
             s  =  s.replace("0",  "");//  如果字串內有半型的0,則變成全型的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",  "");
             s  =  s.replace("A",  "");
             s  =  s.replace("B",  "");
             s  =  s.replace("C",  "");
             s  =  s.replace("D",  "");
             s  =  s.replace("E",  "");
             s  =  s.replace("F",  "");
             return  s;
      }

      public  static  void  main(String[]  args)  throws  IOException  {
            
              BufferedReader  sc  =  new  BufferedReader(
                          new  InputStreamReader(System.in));//  從鍵盤讀取文字

             System.out.println("8進位2進位\n//-----------------------");
             System.out.print("輸入要轉換的數字:");
             String  shu_ru =  sc.readLine().toUpperCase();//  輸入的值
             String  in  =  "";//  儲存【最後印出結果】
             in  +=  ("8進位:"  +  shu_ru +  "        2進位"  +  "\n\n");

             boolean  cuo  =  false;//  判斷是否有錯誤
             String  cuo_zi =  "";//  判斷錯誤的文字
             int  chang  =  shu_ru.length();//  字串長度
             String[]  xian  =  new  String[chang];//  計算用
             String  sum  =  "";//  顯示【答案】
             String[]  s8  =  {  "0",  "1",  "2",  "3",  "4",  "5",  "6",  "7"  };
             String[]  s2  =  {  "000",  "001",  "010",  "011",  "100",  "101",  "110",  "111"  };
           

             for  (int  i  =  0;  i  <  chang; i++)  {//  印出個別16進位的符號(定位)
                   xian[i]  =  shu_ru.substring(i,  i  +  1);
                   in  +=  " "  +  quan_xing(xian[i])  +  "";
             }

             in  +=  "\n";//  換行

             for  (int  i  =  0;  i  <  chang; i++)  {
                   for  (int  j  =  0;  j  <  s2.length;  j++)  {
                          if  (xian[i].equals(s8[j]))  {//  印出計算結果
                                in  +=  " "  +  quan_xing(s2[j]);
                                sum  +=  s2[j];//  儲存答案
                          }
                   }

                   //  判斷是否有錯字
                   if  (!(xian[i].equals("0")  ||  xian[i].equals("1")
                                ||  xian[i].equals("2")  ||  xian[i].equals("3")
                                ||  xian[i].equals("4")  ||  xian[i].equals("5")
                                ||  xian[i].equals("6")  ||  xian[i].equals("7")))  {
                          cuo  =  true;
                          cuo_zi  +=  xian[i];//  錯字
                   }

             }

             in  +=  "\n\n答案:    "  +  sum;

             if  (cuo  ==  true)  {//  如果有錯字
                   in  =  ("檢視結果:\n有異音的字:    "  +  cuo_zi +  "");
             }

             System.out.println(in);//  顯示計算結果
             System.gc();//  釋放記憶體

      }

}




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

相關創作

留言共 0 篇留言

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

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

前一篇:(Java程式碼) 16... 後一篇:進位轉換器(會印出算式)...

追蹤私訊

作品資料夾

jimmy80203All
那麼,遊戲開始吧。看更多我要大聲說10小時前


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

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