[英]java binary to decimal converter
這是我的第一個 Java 程序之一,我很困惑為什么它不起作用。 幫助?
此外,盡管 'input' 被賦予了正確的值,else 語句仍會打印。 是否有我缺少的條件語句結構?
package beginning;
import java.util.Scanner;
import java.lang.Math;
// VERY BROKEN
public class BinaryDecimalConverter {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
System.out.println("Number Base To Convert: 1) Binary 2) Decimal ::");
String binOrDec = sc.next();
System.out.println("Enter Number ::");
long number = sc.nextInt();
double result = 0;
if ((binOrDec.equals("1")) || (binOrDec.equals("Binary"))) {
char[] bin = ("" + number).toCharArray(); // conversion must be String >> char[]
int index = bin.length - 1;
double aggregate = 0;
for (int i = 0; i < bin.length; i++) {
aggregate = ((Math.pow(2, i)) * (bin[index])); // when using Math.pow(a, b) - a must be 'double' data type
index = index - 1;
result = result + aggregate;
}
}
if (binOrDec.equals("2") || binOrDec.equals("Decimal")) {
// decimal-binary converter, unfinished.
}
else {
System.out.println("Invalid Input");
}
System.out.println("" + number + " >> " + result);
sc.close();
}
}
你的代碼說:如果binOrDec
是2
或Decimal
,什么都不做,否則,打印invalid input
。 計算機做你告訴他們做的事情。 我認為您可能希望在該行前面有一個else
來檢查 2/Decimal。
“不起作用”不是一個好的開始。 幫助我們幫助您:
您的bin
數組的類型為char[]
。 例如,如果我提供二進制數1010
,它包含 4 個字符:1、0、1 和 0。那就是characters 。 ascii 字符。 ascii 字符1
具有大數值(不是1
):
char c = '1';
System.out.println(1 * c);
以上打印.... 49
。
所以: aggregate = ((Math.pow(2, i)) * (bin[index]));
乘以48
或49
具體取決於該字符是 1 還是 0。我想您可能正在尋找if (bin[index] == '1') aggregate = Math.pow(2, i);
.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.