C++ Bitwise Operators
In this section we are going to study C++ Bitwise operator, its importance and basic operating principle.
Table of content
C++ Programming Bitwise Operators:
- In programming, unlike byte level operations, we may need to do bit level calculations by operating on the individual data bit.
- C++ gives us various bitwise operators for manipulation of bits.
- C++ Bitwise Operators operates on Integer and character data types only.
- C++ Bitwise Operators does not operates on float, double.
- There are 6 Bitwise Operators in C++.
List of Bitwise Operators
Operator | Name of Operator | ||
---|---|---|---|
~ | One's Compliment | ||
gt;gt; | Right Shift | ||
lt;lt; | Left Shift | ||
amp; | Bitwise AND | | Bitwise OR ^ | Bitwise XOR |
Examples of Bitwise Operators:
One's Compliment (~) Operator:
This operator is generally used to turn ON or turn OFF bit.
#include <iostream> using namespace std; int main() { // 12 = 0000 1100 unsigned int num1 = 12 int num2 = 0; num2 = ~num1; cout << "Value of num2 is: " << num2 << endl ; return 0; }
Output:
Value of num2 is: -13
Right Shift (>>) Operator:
This operator is used to shift the bits to right by position specified in the expression.
#include <iostream> using namespace std; int main() { unsigned int num1 = 12; // 12 = 1100 int num2 = 0; num2 = num1 >> 2; // 3 = 0011 cout << "Value of num2 is: " << num2 << endl ; return 0; }
Output:
Value of num2 is: 3
Left Shift (<<) Operator:
This operator is used to shift the bits to left by position specified in the expression.
#include <iostream> using namespace std; int main() { unsigned int num1 = 12; // 12 = 0000 1100 int num2 = 0; num2 = num1 << 2; // 48 = 0011 0010 cout << "Value of num2 is: " << num2 << endl ; return 0; }
Output:
Value of num2 is: 48
Bitwise AND (&):
This operator is generally used to mask particular part of byte.
Output:
Value of num2 is: 8
#include <iostream> using namespace std; int main() { unsigned int num1 = 10; // 10 = 0000 1010 unsigned int num2 = 12; // 12 = 0000 1100 int num3 = 0; num3 = num1 & num2; // 8 = 0000 1000 cout << "Value of num3 is : " << num3 << endl ; return 0; }
Bitwise OR (|):
#include <iostream> using namespace std; int main() { unsigned int num1 = 10; // 10 = 0000 1010 unsigned int num2 = 12; // 12 = 0000 1100 int num3 = 0; num3 = num1 | num2; // 14 = 0000 1110 cout << "Value of num3 is : " << num3 << endl ; return 0; }
Output:
Value of num2 is: 14
Bitwise XOR (^):
#include <iostream> using namespace std; int main() { unsigned int num1 = 10; // 10 = 0000 1010 unsigned int num2 = 12; // 12 = 0000 1100 int num3 = 0; num3 = num1 ^ num2; // 6 = 0000 0110 cout << "Value of num3 is : " << num3 << endl ; return 0; }
Output:
Value of num2 is: 6