2 進数から 10 進数へのコンバーターを作成します。最低限の骨のほとんどを持っていますが、問題があります.プログラムは2進数を右から左ではなく左から右に読み取ります(通常、手書きで計算する場合と同じように)。このため、「1111」、「10001」、「10101」などの入力は正しい 10 進数の答えとして出てきますが、「10011」などの一部の入力は明らかに正しくない結果になります。
TL;DR ループが char 配列を通過する方法を反転するには、どの方法が最も適切ですか?
サンプルコード:
for (i = 0; i < 33 && binary[i] != '\0'; i++, power++)
{
if (binary[i] == '0')
continue;
else if (binary[i] == '1')
decimal = pow (2,power) + decimal;
else
{
cout << "Invalid input." << endl;
return 0;
}
}