0

2進数と10進数から変換する必要があるJavaプロジェクトを実行しています。現在、10進数から2進数への変換に取り組んでいます。これは私が持っているコードのビットです。このコードで残りを複数回ループする方法がわかりません。

public static void decimalToBinary()   {
  Scanner input = new Scanner (System.in);
  System.out.println ("Input decimal number");
  String decimal = input.next();
  int x = Integer.parseInt(decimal);
  int remainder = x%2;
  char[] charArray = decimal.toCharArray();
}

これを続ける方法がわかりません。これまでの回答ありがとうございますが、問題の課題である配列でこれを完了したいと思います。

4

6 に答える 6

3

Integer クラスには、必要なことを行うためのメソッドがあります。

public static void decimalToBinary(){
    Scanner input = new Scanner (System.in);
    System.out.println ("Input decimal number");
    String decimal = input.next();
    String binary = Integer.toBinaryString(Integer.parseInt(decimal));
}
于 2013-02-15T14:16:51.870 に答える
2

Integer の static ヘルパー メソッドを使用して、10 進数からバイナリ文字列に変換できます。

String inBinary = Integer.toBinaryString(10);   // result will be 1010
于 2013-02-15T14:18:08.673 に答える
1
public static void decimalToBinary(){
    Scanner input = new Scanner (System.in);
    while (!*terminatingCondition*) {
      System.out.println ("Input decimal number");
      String decimal = input.next();
      System.err.println(Integer.toString(new Integer(decimal), 2));
  }
}

それが役立つことを願っています...

于 2013-02-15T14:15:20.833 に答える
1
public static void binaryPrint(int n) throws Exception
{
    if(n > 0)
    {
        binaryPrint(n/2);
        System.out.print(n%2);
    }
    else if(n < 0)
        throw new Exception();          
}
于 2013-02-15T14:47:09.207 に答える
0
public static String binaryRepresentation(int i32)
{
   String binary;
   for(int i = 31; i >= 0; i--){
     if((i32 & (1 << i)) > 0) binary += "1";
     else binary += "0";
   }
   return binary;
}

//...

String representation = binaryRepresentation(x);

苦手な方はこちらInteger.toBinaryString(int)

于 2013-02-15T14:18:01.127 に答える
0

次のようなものが必要だと思います:

public static void decimalToBinary(){
    Scanner input = new Scanner (System.in);
    System.out.println ("Input decimal number");
    String decimal = input.next();
    int x = Integer.parseInt(decimal);
    int remainder = x%2;
    char[] charArray = decimal.toCharArray();
}

public static char[] findBinary(int decimal) {
    if (decimal == 0) { // base condition
        return new char[0];
    }

    int remainder = decimal % 2;
    char[] remainderCharArray = findBinary(remainder); // Use recursion
    char[] decimalCharArray = decimal.toCharArray();

    char[] resultCharArray = /* Combine two arrays */;

    return resultCharArray;
}

数値と剰余のバイナリ表現がどのように組み合わされるかはわかりませんが、私が配置した場所でそれを行う必要があります/* Combine two arrays */

再帰の概念に慣れていない場合は、それについて読むことをお勧めします。

于 2013-02-15T14:25:12.060 に答える