gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 09:29:45 25 4
gpt4 key购买 nike

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

我是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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com