我正在制作二进制到十进制和后面的GUI转换器。
我有工作代码,我想出了如何在GUI中应用Binary-to-Decimal部分,但是我遇到了Decimal-to-Binaryone的问题。
首先让我解释一下我做了什么,以及什么对Bin-to-Dec有用:
我使用了这种方法(在主要区域之内,因为如果你知道我的意思,它在动作按钮区域没有工作):
public int stringToDec(String inputBin) {
int decimal = 0;
int power = 0;
while (inputBin.length() > 0) {
int temp = Integer.parseInt(inputBin.charAt((inputBin.length()) - 1) + "");
decimal += temp * Math.pow(2, power++);
inputBin = inputBin.substring(0, inputBin.length() - 1);
}
return decimal;
}
在操作按钮的"区域"我将结果转换为String并将其分配到我想要显示结果的文本字段:
String intstring = Integer.toString(stringToDec(inputBin));
resultDecField.setText(intstring);
它有效。但是当我尝试将相同的逻辑应用于Decimal-to-Binary时,我遇到了很多问题。 我将它用于Dec-to-Bin转换:
public int decToBinary(int inputDec) {
do {
System.out.print(inputDec % 2);
inputDec /= 2;
} while (inputDec > 0);
}
但我不能用System.out
替换setText
。我想我需要以某种方式在变量中捕获结果然后将其分配给字段。我对吗?但是如何以及变量是什么?也许是阵列?但我不知道该怎么做,也无法在网上找到任何东西。我被卡住了。
答案 0 :(得分:0)
尝试以下代码,它应该可以正常工作
public int decToBinary(int inputDec) {
String returnVal = "";
do {
returnVal = returnVal + (inputDec % 2);
inputDec /= 2;
} while (inputDec > 0);
return Integer.parseInt(returnVal);
}