/*-----------------------------------------------------
写出一个表格,其中列出以各种可能的0和1组合作为运算对象,进行按位逻辑
运算所得到的值。
-------------------------------------------------*/
#include <iostream>
#include <bitset>
using std::bitset;
using std::cout;
using std::cin;
using std::endl;
const unsigned short N1= 98, N2 = 49;
int main()
{
cout << "Num1 Operator Num2 Result\n";
cout << bitset<8>(N1) << "(" << N1 << ")" << " "
<< "&" << " "
<< bitset<8>(N2) << "(" << N2 << ")" << " "
<< bitset<8>(N1&N2) << "(" << (N1&N2) << ")" << endl;
cout << bitset<8>(N1) << "(" << N1 << ")" << " "
<< "|" << " "
<< bitset<8>(N2) << "(" << N2 << ")" << " "
<< bitset<8>(N1|N2) << "(" << (N1|N2) << ")" << endl;
cout << bitset<8>(N1) << "(" << N1 << ")" << " "
<< "^" << " "
<< bitset<8>(N2) << "(" << N2 << ")" << " "
<< bitset<8>(N1^N2) << "(" << (N1^N2) << ")" << endl;
cout << bitset<8>(N1) << "(" << N1 << ")" << " "
<< ">>2" << " "
<< bitset<8>(N2) << "(" << N2 << ")" << " "
<< bitset<8>(N1>>2) << "(" << (N1>>2) << ")" << " && "
<< bitset<8>(N2>>2) << "(" << (N2>>2) << ")" << endl;
cout << bitset<8>(N1) << "(" << N1 << ")" << " "
<< "<<2" << " "
<< bitset<8>(N2) << "(" << N2 << ")" << " "
<< bitset<8>(N1<<2) << "(" << (N1<<2) << ")" << " && "
<< bitset<8>(N2<<2) << "(" << (N2<<2) << ")" << endl;
cout << bitset<8>(N1) << "(" << N1 << ")" << " "
<< "~" << " "
<< bitset<8>(N2) << "(" << N2 << ")" << " "
<< bitset<8>(~N1) << "(" << (~N1) << ")" << " && "
<< bitset<8>(~N2) << "(" << (~N2) << ")" << endl;
return 0;
}