将循环输出转换为数组时出现问题。我正在将小数转换为二进制形式,但我希望它从左到右而不是在垂直线上打印出来。我假设有一种方法可以将循环输出添加到数组1中。 我的代码来自程序snipet:
if (choice == 2)//convert decimal to binary
{
System.out.println("Enter a decimal digit between -512 and 511 to convert to binary.");
decimal = keyboard.nextInt();
decimal2 = decimal;
while(decimal > 0){
decimal2 = decimal % 2;
decimal = decimal /2;
System.out.println(decimal2);
}
}
感谢您的帮助!
答案 0 :(得分:1)
您可以使用字符串连接余数值。
String ans="";
循环内的
decimal2 = decimal % 2;
decimal = decimal /2;
ans = decimal1+ans;
在你打印的循环外面:
System.out.println(ans);
答案 1 :(得分:0)
您可以使用System.out.print(decimal2)
代替println()
,它会插入换行符。
答案 2 :(得分:0)
只要有可能,您应该使用内置的Java方法,因为它们通常比您编写的任何内容都更可靠:
您可以使用Integer.toBinaryString()
轻松转换为十进制到二进制:
示例:
//read from STDIN
decimal = keyboard.nextInt();
//Converts decimal to a binary representation in String format
String bitString = Integer.toBinaryString(decimal);
//print result to STDOUT
System.out.println(bitString);
注意:这样做的另一个好处是二进制数的所有数字都是并排的。我相信这是你最初的目标。
答案 3 :(得分:0)
编写Java程序时使用Java conventions ...
if (choice == 2)//convert decimal to binary {
System.out.println("Enter a decimal digit between -512 and 511 to convert to binary.");
decimal = keyboard.nextInt();
System.out.print("Binary number is ");
while(decimal > 0) {
System.out.print(decimal % 2);
decimal = decimal / 2;
}
}
注意:强>
如果您不需要像上面那样写,也可以在下面使用
System.out.println("Binary of number is : " + Integer.toBinaryString(keyboard.nextInt()));