-2

私は、ビットごとの演算子を (OR、AND、または NOT ) に使用しなければならない割り当てに取り組んできました。

プログラムには固定の 4X4 行列があり、ユーザーはプログラムにクエリを入力して、2 つの BINARY 数値の AND 演算、それらの OR 演算などを行うと想定しています。

たとえば、0111 は値 73 で表示され、setfill() と setw() でそれを数えることができたとしても、実際のバイナリ値に対してビット演算を実行できません。

注意: int の代わりに文字列を試しましたが、ビット演算はまだ適用されません。

例えば:

2 つのバイナリ値の AND を取りたい場合は、別の int z z=x&y; で int x=1100 と int y=0100 としましょう。

結果は 0100 のはずですが、表示される結果は 64 です

y を画面に出力しようとした場合に表示される結果も

#include <iostream>
#include <string>
#include <iomanip>
using namespace std;

int main()
{

    int Matrix[4][4]={{1,1,0,0},{1,1,0,1},{1,1,0,1},{0,1,0,0}};
    string Doc[4]={"Doc1","Doc2","Doc3","Doc4"};
    string Term[4]={"T1","T2","T3","T4"};

    cout << "THE MATRIX IS:"<<endl;

    for(int i=0;i<4;i++)
    {
        cout<<"\t"<<Doc[i];
    }
    cout<<"\n";
    for(int row=0; row<4;row++)
    {
        cout<<Term[row]<<"\t";
        for(int col=0;col<4;col++)
        {
            cout<<Matrix[row][col]<<"\t";
        }
        cout<<endl;
    }

    int term1=1100;
    cout<<"\nTerm1= "<<term1;
    int term2=1101;
    cout<<"\nTerm2= "<<term2;
    int term3=1101;
    cout<<"\nTerm3= "<<term3;
    int term4=0100;
    cout<<"\nTerm4= "<<setfill('0')<<setw(4)<<term4;


    int Q=term1&term4;
    cout<<"\n Term1 and Term4 ="<<Q;

    system("pause");
    return 0;
}
4

2 に答える 2