国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

代碼模擬實現十六進制轉二進制

2019-11-14 15:14:07
字體:
來源:轉載
供稿:網友

public class TowAdecimal{
    PRivate int sum;//用于轉換值
    private static String s = "11";//十六進制的值
    public static void main(String[] args){
        TowAdecimal a = new TowAdecimal();
        a.char_value(s);

    }

    //------------------------------------------------------------
    public  void char_value(String s){
        if (s == null) {//判斷.傳進來的是不是null 如果是null 就沒必要往下運算,就直接終止函數運行
            System.out.println( "請輸入一個十六進制的字符串,null不是字符串" );
            return;
        }
        for(int i=0; i < s.length(); ++i){
            char c = s.charAt(s.length()-1-i);//從右往左獲得字符串
            if (int_value(c,i)) {//這個是根據輸入的字符,如果有一位不正確,就終止此函數運行,就不輸出錯誤的結果了
                return;
            }
        }
        if (sum == 0) {
            System.out.println( 0 );
        }else{
            sum_2(sum);
        }
    }
    //------------------------------------用于把字符串解析成整型值----------------
    public boolean int_value(char c,int N_Ci_Fang ){//這個方法是把字符轉為整形值
        int i = 0;
        if (c == 'a') {
            i = 10;
        }else if (c == 'b') {
            i = 11;
        }else if (c == 'c') {
            i = 12;
        }else if (c == 'd') {
            i = 13;
        }else if (c == 'e') {
            i = 14;
        }else if (c == 'f') {
            i = 15;
        }else if (c == '0') {
            i = 0;
        }else if (c == '1') {
            i = 1;
        }else if (c == '2') {
            i = 2;
        }else if (c == '3') {
            i = 3;
        }else if (c == '4') {
            i = 4;
        }else if (c == '5') {
            i = 5;
        }else if (c == '6') {
            i = 6;
        }else if (c == '7') {
            i = 7;
        }else if (c == '8') {
            i = 8;
        }else if (c == '9') {
            i = 9;
        }else{
            System.out.println( "十六進制每位上的值最大為 f , 請輸入 0~f 之間的值" );
            return true;
        }

        sum_value(i,N_Ci_Fang);
        return false;
    }
    //-------;----------------------------用于把整型值計算,得出十進制----------------
    public  void sum_value( int value,int N_Ci_Fang){


        //  System.out.println(   Math.pow(16,0)); //是16的0次方 里面的兩個參數都是double類型
        this.sum += value*(int)Math.pow(16,N_Ci_Fang);
    }
    //----------------------------------計算二進制的值---------------------
    public void sum_2(int sum){
        int sum2= sum;//用于承載每次除2的那個值
        StringBuffer s = new StringBuffer();
        for(int i=1; i<999999999; ++i){
            if (sum2 == 1) {
                s.append(1);
                break;
            }
            s.append(sum2%2);
            sum2 = sum2/2;

        }
        String_Buffer(s);
    }
    //----------------------StringBuffer--------------------------------------
    public void String_Buffer( StringBuffer s){
        StringBuffer value = new StringBuffer();
        for(int i=0; i < s.length(); ++i){
            value.append(s.charAt(s.length()-1-i));
        }
        System.out.println( value );
    }
    //------------------------------------------------------------
    //------------------------------------------------------------
}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 承德市| 嵩明县| 宁安市| 太仓市| 海盐县| 涿鹿县| 佛冈县| 高淳县| 富民县| 广汉市| 石林| 兰州市| 夏河县| 高州市| 博兴县| 进贤县| 军事| 比如县| 南乐县| 额敏县| 咸丰县| 东阿县| 自贡市| 安泽县| 柳江县| 措美县| 淮阳县| 钟祥市| 全州县| 曲靖市| 宜城市| 古丈县| 雷山县| 翁源县| 涿鹿县| 海安县| 青冈县| 修武县| 东阳市| 银川市| 泉州市|