好的,我知道这个标题已经有很多解决方案了。我已经通过这些链接,但没有帮助
我是java的新手,我正在编写一个简单的十进制到二进制转换程序。其中用户将输入十进制数字基数10并以二进制形式基数2获得输出。
我已经编写了一个程序,但我没有得到正确的输出。遗漏了一些我无法识别的东西
这是我的代码
import java.util.Scanner;
class BinaryConversion{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("Enter the decimal number to convert into binary");
int num = scan.nextInt();
StringBuilder BinaryString = new StringBuilder();
BinaryString.setLength(0);
while(num!=1){
num/=2;
int r = num%2;
BinaryString.append(Integer.toString(r));
}
System.out.println(BinaryString.reverse());
}
}
在上面的程序中如果我输入十进制数字,我们说95输出应该是1011111
但我得到101111
请帮忙。
答案 0 :(得分:1)
当num
等于1时你就停止了。首先进行除法会错过一个二进制数字。
while(num!=1){
num/=2;
int r = num%2;
BinaryString.append(Integer.toString(r));
}
将是:
while (num > 0) { // till the remaining is greater than zero
int r = num % 2; // at first fetching the modulus result
BinaryString.append(Integer.toString(r));
num /= 2; // then dividing
}