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

标签 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
请帮忙。

最佳答案

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
}

关于java - 输出中的程序十进制到二进制转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39536368/

相关文章:

java - 如何使用单个流操作从对象中获取多个值?

lisp - 在 Lisp 中将十进制数转换为八进制数

c# - 从 OracleDataAdapter.Fill() 填充 DataTable 时为 "Specified cast is not valid"

java - Kotlin 中的平等

Java Swing 重绘图像

java - JBoss 7 中的多线程问题

binary - 帮助逆向工程二进制文件格式的工具

python - 根据列表索引将二进制列表转换为组合所需的值

c - 为什么我无法在十进制到二进制转换中获得正确的输出?

mysql - 在mysql用户定义函数中如何设置动态返回数据类型