進変換小数(Javaバージョン)

道路に関する問題解決のアイデアです:今進数を8進数に2進数を教えてくれ、進数に変換されます。進JAVAは、「&」記号算出8進数で利用することができる行う、16進数を右に「&」であってもよい16進数を使用して、4進数として表現することができます4回には4ビットの2進数を取得します。1が3に合うことができるように進へ進数の間に、進は、進数3のように表すことができます。注この問題点3のメジアン倍数ことを保証するために、二進数に変換されます。

輸入 java.utilの。* ;
パブリック クラスメイン{
     公共 静的 ボイドメイン(文字列引数[])
    { 
        スキャナSC = 新しいスキャナ(System.in)。
        INT、N = sc.nextInt()。
        列A [] = 新しい文字列[n]は、
        列Bは、[] = 新しい文字列[n]を、
        以下のためにINT I = 0、I <N; I ++ 
        { 
            [I] = sc.next()。
            B [i]は = "" ; 
        } 
        のためにINT iが= 0、I <N; I ++ 
        { 
            B [I] = hexToOctal([I])。
            System.out.println(B [I])。
        } 
    } 
    静的ストリングhexToOctal(文字列str)
    { 
        文字列S = TO2(STR)。
        ストリングS1 = ADD0(S)。
        リターンTO8(S1)。
    } 
    静的文字列TO2(文字列str)
    { 
        チャー CHS [] = { '0'、 '1' }。
        文字列s = 新しい文字列( "0123456789ABCDEF" );
        チャー C1 [] =str.toCharArray();
        INT POS = str.length()* 4 チャー C2 [] = 新しい CHAR [POS]。
        INT I = str.length() - 1; I> = 0; i-- 
        { 
            int型の TEMP = s.indexOf(C1 [i])と;
            INT ; J <4; J ++ J = 0 
            { 
                C2 [ --pos] = CHS [TEMP&1 ]。
                TEMP = TEMP >>> 1 
            } 
        } 
        戻り 、新たな文字列(C2)を、
    } 
    静的文字列ADD0(文字列str) 
    {
        文字列s(str.indexOf( '1' str.substring = ))。
        INT LEN = s.length()。
        もし(LEN%3 == 0 リターンS。
        そう であれば(LEN%3 == 1 リターン "00" + S。
        他の
            リターン "0" + S; 
    } 
    静的文字列TO8(文字列str)
    { 
        HashMapの <文字列、文字>マップ= 新しい HashMapの<文字列、文字> (); 
        map.put( "000"、 '0' )。
        map.put( "001"、 "); 
        map.put( "010"、 '2' )。
        map.put( "011"、 '3' )。
        map.put( "100"、 '4' )。
        map.put( "101"、 '5' ); 
        map.put( "110"、 '6' )。
        map.put( "111"、 '7' )。
        INT POS = str.length()/ 3 チャー C1 [] = 新しい CHAR [POS]。
        INT I = str.length(); I> 0; I- = 3 
        { 
            文字列sは = str.substring(I-3 私); 
            C1 [ --pos] =map.get(S); 
        } 
        戻り 、新しい文字列(C1)を、
    } 
    

}

 

おすすめ

転載: www.cnblogs.com/rousong/p/11837122.html