十进制到二进制代码
我正在做一个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();
}
我不知道该如何继续。 谢谢你的回答,但是我想用一个数组来解决问题。
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));
}
}
希望帮助...
我该如何用数组来完成此操作? – user2070292 2013-02-15 14:17:23
把它放在一个循环? – hd1 2013-02-15 14:18:31
是的,这是我正在尝试做的,但我不知道如何实现它与一个数组加上一个循环 – user2070292 2013-02-15 14:22:04
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));
}
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)
您可以使用静态辅助方法整数从十进制转换为二进制字符串,这将使您获得大部分途径:
String inBinary = Integer.toBinaryString(10); // result will be 1010
噢......好赶上! – hd1 2013-02-15 14:19:37
我想你需要的东西是这样的:
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 */
。
如果你不熟悉递归的概念,我建议你阅读它。
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();
}
你会在这里找到答案(虽然你可能不一定需要0填充):http://*.com/questions/4421400/how-to-get-0-padded-binary java中的整数表示 – 2013-02-15 14:15:54
我不明白剩下的部分将如何帮助您解决问题。你会用伪代码还是英文来描述你的算法? – 2013-02-15 14:18:02
我余下的部分是出来的二进制数的一部分,但是我们需要得到余数的余数等等。打印剩下的部分给出了十进制的二进制数......这就是我能解释我的思维过程的最好方法 – user2070292 2013-02-15 14:21:21