Source of bit_operators.cpp


  1: //bit_operators.cpp
  2: //Illustrates the effects of some C++ bitwise operators.

  4: #include <iostream>
  5: using namespace std;

  7: int main()
  8: {
  9:     cout << "\nThis program demonstrates the effect of applying some of "
 10:         "the C++\nbitwise operators to an integer value.\n\n";

 12:     int i, j;

 14:     i = 7;
 15:     j = i << 2;  //The "left shift" operator
 16:     cout << i << " left-shifted by 2 becomes " << j << endl;
 17:     cout << "Press Enter to continue ... ";  cin.ignore(80, '\n');

 19:     i = 43;
 20:     j = i >> 3;  //The "right-shift" operator
 21:     cout << endl << i << " right-shifted by 3 becomes " << j << endl;
 22:     cout << "Press Enter to continue ... ";  cin.ignore(80, '\n');

 24:     i = 43;
 25:     j = i & 15;  //The "bitwise and" operator
 26:     cout << endl << i << ", after a \"bitwise and\" with 15, becomes " 
 27:          << j << endl;
 28:     cout << "Press Enter to continue ... ";  cin.ignore(80, '\n');

 30:     i = 42;
 31:     j = i | 28;  //The "bitwise or" operator
 32:     cout << endl << i << ", after a \"bitwise or\" with 28, becomes "
 33:          << j << endl;
 34:     cout << "Press Enter to continue ... ";  cin.ignore(80, '\n');

 36:     i = 42;
 37:     j = i ^ 28;  //The "bitwise exclusive-or" operator
 38:     cout << endl << i << ", after a \"bitwise exclusive-or\" with 28, "
 39:          << "becomes " << j << endl;
 40:     cout << "Press Enter to continue ... ";  cin.ignore(80, '\n');

 42:     i = 2147463647;
 43:     j = ~i;      //The "bitwise complement" operator
 44:     cout << endl << i << ", after a \"bitwise complement\", becomes "
 45:          << j << endl;
 46:     cout << "Press Enter to continue ... ";  cin.ignore(80, '\n');
 47: }