十进制到二进制代码

时间:2013-02-15 14:11:13

标签: java

我正在做一个java项目,我必须从二进制数和小数转换。 我现在正在努力从十进制转换为二进制。 这是我的一点代码。 我不知道如何在这段代码中多次循环余数。

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();
}

我不知道如何继续这个。 到目前为止,感谢您的回答,但我希望用一个解决该问题的挑战的数组来完成这个。

6 个答案:

答案 0 :(得分: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));
}

答案 1 :(得分:2)

您可以使用Integer中的静态帮助器方法将十进制转换为二进制字符串,这将使您获得大部分内容:

String inBinary = Integer.toBinaryString(10);   // result will be 1010

答案 2 :(得分: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));
  }
}

希望有帮助...

答案 3 :(得分: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();          
}

答案 4 :(得分: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)

,那就是这样

答案 5 :(得分: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 */放置的地方。

如果你不熟悉递归的概念,我建议你阅读它。