2016-08-26 1 views
0

Programming 1クラスの宿題の答えを理解するのに苦労しています。この割り当ては、ユーザにバイナリ入力(最大4ビット)を促し、それを10進数に変換します。ループ、条件文、ParseInt、およびモジュラス演算子や他の数学演算子以外のものは使用できません。JavaのModulus演算子を使用して、バイナリからユーザ入力を10進数に変換する

私は数学的な面で問題があります。モジュラス演算子を使用して質問に答える方法を理解すれば、そのコードを書くことができると思います。

私は検索して助けてくれるものは何も見つかりませんでした。

+0

私たちにいくつかのコードを表示してください。 –

+0

参照。http://stackoverflow.com/a/11419738/2310289 –

+0

モジュラス演算子は、この問題にはあまり適していません。 – 4castle

答えて

0

元の番号を取得するには、各位置の数値を取得し、2の累乗で加算する必要があります。

double num = 1110; 
    double ones = Math.floor(num % 10); 
    double tens = Math.floor(num/10 % 10); 
    double hundreds = Math.floor(num/100 % 10); 
    double thousands = Math.floor(num %10000 /1000); 
    double tenThousands = Math.floor(num/10000 % 10); 

    double original = (ones * 1) + 
         (tens * 2) + 
         (hundreds * 4) + 
         (thousands * 8); 


    System.out.println(num); 
    System.out.println("ones: " +ones); 
    System.out.println("tens: " +tens); 
    System.out.println("hundreds: " +hundreds); 
    System.out.println("thousands: " + thousands); 
    System.out.println("original number : " + original); 
+0

ありがとうChit、それは動作し、私はなぜ働いて、数学が関与しているのか理解しています。私はこの質問に立ち往生していたので、大きな助けになってくれてありがとう。 –

関連する問題