1

これは私の最初の質問なので、フォーラムで与えられたルールに違反しないことを願っています。私はあなたに助けを求めたいです。私は本当にプログラミング初心者ですが、宿題のために、2つの2進数を追加するC ++でプログラムを作成する必要があります。10進数に変換して足すことでできました。私はそれをやったのですが、PCにはすでにいくつかの部品がありました。私の質問は、本当に大きな 2 進数を入力しない限り、すべてが正常に機能していることです。データ型を変更すると、学校のプログラムがコードをチェックするときの結果が異なります。正確に変更する方法がわかりません。前もって感謝します。「e」を含む10進数を変換する必要がある場合に問題が発生するようです-

    #include <iostream>
    #include <cmath>
    #include <string>
    #include <vector>
    using namespace std;
    int main ()
    {
    int k = 0;
    int l = 0;
    int i = 0;
    int j = 0;
    double number = 0;
    double numberb = 0;
    long dec;
    string input;
    string inputb;
    cout << "Enter two binary numbers:" << endl;

    cin >> input >> inputb;

    if(cin.fail ())
        {cout << "Wrong input." << endl;
        return 0;
        }





    for (i = input.length() - 1; i>=0; i-- )
    {
    if (input[i] != '1' && input[i] != '0')
    {
    cout << "Wrong input." << endl;
    return 0;
    }
    if (input[i] == '1')
    {
    number += pow((double)2,(int)j);
    }
    j++;
    }

    for (k = inputb.length() - 1; k>=0; k-- )
    {
    if (inputb[k] != '1' && inputb[k] != '0')
    {
    cout << "Wrong input." << endl;
    return 0;
    }
    if (inputb[k] == '1')
    {
    numberb += pow((double)2,(int)l);
    }
    l++;
    }

    dec = number+numberb;


    vector <double> bin_vector;
    long bin_num;






      while ( dec >= 1 )
        {
           bin_num = dec % 2;
           dec /= 2;
           bin_vector.push_back(bin_num);
        }

      cout << "Soucet: ";
      for ( int i = (double) bin_vector.size() - 1; i >= 0; i-- )
           cout << bin_vector[i] << "";

      cout <<  endl;
      return 0;


}
4

1 に答える 1