我正在做一个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();
}
我不知道如何继续这个。 到目前为止,感谢您的回答,但我希望用一个解决该问题的挑战的数组来完成这个。
答案 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 */
放置的地方。
如果你不熟悉递归的概念,我建议你阅读它。