好吧,我知道这个标题已经有很多解决方案了。我已经浏览了这些链接,但没有帮助
我是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/