我正在编写一个程序,它采用一个名为 decimalInput 的整数(目前是一个用于测试目的的文字)并将其转换为一个名为 binaryOutput 的字符串,它是二进制形式的十进制数。我正在使用本指南(第一个)来解释如何完成从十进制到二进制的转换。到目前为止,这是我的代码:
public class ToBin {
public static void main(String[] args) {
int decimalInput = 19070;
String binaryOutput = "";
while (decimalInput > 0) {
if (decimalInput % 2 == 0) {
binaryOutput = "0" + binaryOutput;
decimalInput = decimalInput / 2;
}
else {
binaryOutput = "1" + binaryOutput;
decimalInput = decimalInput / 2;
}
}
System.out.println(binaryOutput);
}
}
对于我拥有的当前文字(19070),我的程序返回字符串“100101001111110”。然而,这是不正确的。我的程序应该返回“10010100111”。因此,出于某种原因,我的程序在末尾添加了一个额外的字符串“1110”。起初我想,好吧,也许我在某个地方搞砸了数学。所以我试着检查数学,它看起来没问题。然后我尝试将文字 decimalInput 更改为较小的数字,特别是 156,它返回字符串“10011100”,这是正确的输出。
我尝试将 decimalInput 更改为键入 long 以查看是否有帮助,但没有。
我所知道的是,由于某种原因,更大的数字正在使我的程序崩溃。我不知道为什么。
我将不胜感激任何帮助,因为这真的让我很沮丧。这也适用于一个类,所以尽管我想使用 toBinaryString(),但我无法这样做。
谢谢!