入力された 2 進数を 10 進数に変換するプログラムを作成しようとしている初心者プログラマーです。私が知る限り、数学とコードは正しく、コンパイル エラーは返されませんが、出力される数値は正しい 10 進数ではありません。私のコードは次のとおりです。
String num;
double result = 0;
do {
Scanner in = new Scanner(System.in);
System.out.println("Please enter a binary number or enter 'quit' to quit: ");
num = in.nextLine();
int l = num.length();
if (num.indexOf("0")==-1 || num.indexOf("1")==-1 ){
System.out.println("You did not enter a binary number.");
}
for (int i = 0; i < l; i++)
{
result = result + (num.charAt(i) * Math.pow(2, (l - i)));
}
System.out.println("The resulting decimal number is: " +result);
} while (!num.equals("quit"));
if (num.equals("quit")){
System.out.println("You chose to exit the program.");
return;
}
あなたが与えることができるどんな助けも大歓迎です. 私は質問をできるだけ明確にするように努めましたが、質問があればできる限り答えようとします。私はこれを長くやっていません。私が必要とするのは、誰かがそれを見て、できれば私がどこかで犯したエラーを見つけることだけです、ありがとう.