输出中的程序十进制到二进制转换错误

时间:2016-09-16 16:37:22

标签: java binary decimal java.util.scanner

好的,我知道这个标题已经有很多解决方案了。我已经通过这些链接,但没有帮助

我是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
请帮忙。

1 个答案:

答案 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
}