【问题标题】:Program Decimal to Binary Conversion error in output [duplicate]输出中的程序十进制到二进制转换错误[重复]
【发布时间】:2016-09-16 16:37:22
【问题描述】:

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

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

【问题讨论】:

    标签: java binary decimal java.util.scanner


    【解决方案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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      • 2015-07-19
      • 2018-01-20
      • 2020-05-15
      • 1970-01-01
      相关资源
      最近更新 更多