私は、ビットごとの演算子を (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;
}