我一直在做一个作业,我必须使用位运算符来(OR、AND 或 NOT)
该程序有一个固定的 4X4 矩阵,用户假设输入一个查询到程序 ANDing 两个 BINARY 数字,ORing 他们......等等
问题是“零前导”二进制数,例如:0111 显示为值 73,即使我设法用 setfill() 和 setw() 计算它我无法对实际二进制值执行按位运算!
注意:我尝试过使用字符串而不是整数,但按位运算仍然不适用。
例如:
如果我想 AND 两个二进制值让我们说 int x=1100 和 int y=0100 在另一个 int z z=x&y;
结果假设为 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;
}