EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 600+ Courses All in One Bundle
  • Login

Bitwise Operators in C++

Home » Software Development » Software Development Tutorials » C ++ Programming Tutorial » Bitwise Operators in C++

Bitwise Operators in C++

Introduction to Bitwise Operators in C++

Bit by bit operation is performed and the operator that works on bits is called a bitwise operator. Using bitwise operators, there are no byte-level operations in programming only bit-level calculations are performed in programming. The bits can be manipulated using various bitwise operators. The operations of bitwise operators can be done on integer and character datatypes only. Bitwise operators cannot be operated on the float and double. In C++, there are a total of six bitwise operators. The six bitwise operators are bitwise AND (&), bitwise OR (|), bitwise XOR (^), left shift (<<), right shift (>>) and bitwise NOT (~).

Operators of Bitwise in C++

In C++, there are a total of six bitwise operators. They are:

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

1. Bitwise AND (&)

In Bitwise AND (&) operation, two numbers are taken as operands and AND operation is performed on every bit of two numbers. If both the bits are one, the result of AND operation is one. If both the bits are zero, the result of AND operation is zero. If anyone of the bits is zero, the result of AND operation is zero. Let’s take a simple example for bitwise AND operation.

Code:

#include <iostream>
using namespace std;
int main()
{
unsigned int num1 = 10;          // 10 = 0000 1010
unsigned int num3 = 12;          // 12 = 0000 1100
int num2 = 0;
num2 = num1 & num3;         // 8 = 0000 1000
cout << "Value of num2 is : " << num2 << endl ;
return 0;
}

Output:

Bitwise operators in C++ output 1

2. Bitwise OR (|)

In Bitwise OR (|) operation, two numbers are taken as operands and OR operation is performed on every bit of two numbers. If both the bits are one, the result of OR operation is one. If both the bits are zero, the result of OR operation is zero. If anyone of the bits is one, the result of OR operation is one. Let’s take a simple example for bitwise OR operation.

Code:

#include <iostream>
using namespace std;
int main()
{
unsigned int num1 = 10;          // 10 = 0000 1010
unsigned int num3 = 12;          // 12 = 0000 1100
int num2 = 0;
num2 = num1 | num3;         // 14 = 0000 1110
cout << "Value of num2 is : " << num2 << endl ;
return 0;
}

Popular Course in this category
C++ Training (4 Courses, 5 Projects, 4 Quizzes)4 Online Courses | 5 Hands-on Projects | 37+ Hours | Verifiable Certificate of Completion | Lifetime Access | 4 Quizzes with Solutions
4.5 (4,890 ratings)
Course Price

View Course

Related Courses
Java Training (40 Courses, 29 Projects, 4 Quizzes)C Programming Training (3 Courses, 5 Project)

Output:

Bitwise operators in C++ output 2

3. Bitwise XOR (^)

In Bitwise XOR (^) operation, two numbers are taken as operands and XOR operation is performed on every bit of two numbers. If both the bits are zero, the result of the XOR operation is zero. If anyone of the bits is one or both the bits are one, the result of XOR operation is one. Let’s take a simple example for bitwise XOR operation.

Code:

#include <iostream>
using namespace std;
int main()
{
unsigned int num1 = 10;  // 10 = 0000 1010
unsigned int num3 = 12;  // 12 = 0000 1100
int num2 = 0;
num2 = num1 ^ num3;      // 6 = 0000 0110
cout << "Value of num2 is : " << num2 << endl ;
return 0;
}

Output:

Bitwise operators in C++ output 3

4. Left Shift (<<) operation

In Left Shift (<<) operation, two numbers are taken as operands. The first operand left shifts the bits and the number of places to be shifted is decided by the second operand. Let’s take a simple example for left shift (<<) operation.

Code:

#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:

Bitwise operators in C++ output 4

5. Right Shift (>>) operation

In Right Shift (>>) operation, two numbers are taken as operands. The first operand right shifts the bits and the number of places to be shifted is decided by the second operand. Let’s take a simple example for the right shift (>>) operation.

Code:

#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:

output 5

6. Bitwise NOT (~)

In Bitwise NOT (~) operation, one number is taken as an operand and all the bits of the number are inverted. Let’s take a simple example for Bitwise NOT (~) operation.

Code:

#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:

output 6

7. All the bitwise operations

 Let’s take a simple program including all the bitwise operations,

Code:

#include <iostream>
using namespace std;
main() {
unsigned int a = 60;      // 60 = 0011 1100
unsigned int b = 13;      // 13 = 0000 1101
int c = 0;
c = a & b;             // 12 = 0000 1100
cout << "Line 1 - Value of c is : " << c << endl ;
c = a | b;             // 61 = 0011 1101
cout << "Line 2 - Value of c is: " << c << endl ;
c = a ^ b;             // 49 = 0011 0001
cout << "Line 3 - Value of c is: " << c << endl ;
c = ~a;                // -61 = 1100 0011
cout << "Line 4 - Value of c is: " << c << endl ;
c = a << 2;            // 240 = 1111 0000
cout << "Line 5 - Value of c is: " << c << endl ;
c = a >> 2;            // 15 = 0000 1111
cout << "Line 6 - Value of c is: " << c << endl ;
return 0;
}

Output:

output 7

Conclusion

In this article, we have learned about different types of operands and operands in C++, their functionality and examples of how to use them.

Recommended Articles

This is a guide to Bitwise Operators in C++. Here we discuss the different types of operands and operands in C++, their functionality and examples to use them. You can also go through our other suggested articles to learn more –

  1. Bitwise Operators in JavaScript
  2. Python Bitwise Operator
  3. Unary Operators in C++
  4. C++ Alternatives

C++ Training (4 Courses, 3 Projects, 4 Quizzes)

4 Online Courses

5 Hands-on Projects

37+ Hours

Verifiable Certificate of Completion

Lifetime Access

4 Quizzes with Solutions

Learn More

0 Shares
Share
Tweet
Share
Primary Sidebar
C plus plus Programming Tutorial
  • Operators
    • C++ Operators
    • Arithmetic Operators in C++
    • Assignment Operators in C++
    • Bitwise Operators in C++
    • Relational Operators in C++
    • Boolean Operators in C++
    • Unary Operators in C++
    • C++ Operator[]
    • Operator Precedence in C++
    • C++ operator=()
  • Basic
    • Introduction To C++
    • What is C++
    • Features of C++
    • Applications of C++
    • Best C++ Compiler
    • C++ Data Types
    • C++ Double
    • C++ unsigned int
    • User Defined Data Types in C++
    • Variables in C++
    • C++ Keywords
    • Pointers in C++
    • C++ Void Pointer
    • Function Pointer in C++
    • Iterator in C++
    • C++ Commands
    • Object in C++
    • C++ Literals
    • C++ Reference
    • C++ Undefined Reference
    • String in C++
    • C++ Programming Language (Basics)
    • C++ Identifiers
    • C++ Header Files
    • Type Casting in C++
    • C++ Formatter
  • Control Statements
    • Control Statement in C++
    • if else Statement in C++
    • Else If in C++
    • Nested if in C++
    • Continue Statement in C++
    • Break Statement in C++
    • Switch Statement in C++
    • goto Statement in C++
    • C++ Struct
    • Loops in C++
    • Do While Loop in C++
    • Nested Loop in C++
  • Functions
    • C++ String Functions
    • Math Functions in C++
    • Friend Function in C++
    • Recursive Function in C++
    • Virtual Functions in C++
    • strcat() in C++
    • swap() in C++
    • strcmp() in C++
    • ceil function in C++
    • C++ begin()
    • size() in C++
    • C++ test()
    • C++ any()
    • C++ Bitset
    • C++ find()
    • C++?Aggregation
    • C++?String append
    • C++ String Copy
    • C++ end()
    • C++ endl
    • C++ push_back
    • C++ shuffle()
    • malloc() in C++
    • C++ reserve()
    • C++ unique()
    • C++ sort()
    • C++ find_if()
    • Reflection in C++
    • C++ replace()
    • C++ search()
    • C++ Memset
    • C++ size_t
    • C++ Substring
    • C++ Max
    • C++ absolute value
    • C++ memcpy
    • C++ wchar_t
    • C++ free()
    • C++ sizeof()
    • C++ Move Semantics
  • Array
    • Arrays in C++
    • 2D Arrays in C++
    • 3D Arrays in C++
    • Multi-Dimensional Arrays in C++
    • C++ Array Functions
    • String Array in C++
    • C++ Length of Array
    • C++ arraylist
  • Constuctor and Destructor
    • Constructor and Destructor in C++
    • Constructor in C++
    • Destructor in C++
    • Copy Constructor in C++
    • Parameterized Constructor in C++
  • Overloading and overriding
    • Overloading and Overriding in C++
    • Overloading in C++
    • Overriding in C++
    • Function Overloading in C++
    • Function Overriding in C++
    • Method Overloading in C++
  • Inhertiance
    • Types of Inheritance in C++
    • Single Inheritance in C++
    • Multiple Inheritance in C++
    • Hierarchical Inheritance in C++
    • Multilevel Inheritance in C++
    • Hybrid Inheritance in C++
  • Sorting
    • Sorting in C++ 
    • Heap Sort in C++
    • C++ Vector Sort
    • Insertion Sort in C++
    • Selection Sort in C++
  • Advanced
    • C++ namespace
    • Encapsulation in C++
    • Access Modifiers in C++
    • Abstract Class in C++
    • C++ Class and Object
    • What is Template Class in C++?
    • C++ Algorithm
    • Data Structures and Algorithms C++
    • C++ Garbage Collection
    • Virtual Keyword in C++
    • Access Specifiers in C++
    • Storage Class in C++
    • Call by Value in C++
    • Multimap in C++
    • C++ Multiset
    • C++ Lambda Expressions
    • Stack in C++
    • C++ Static
    • C++ static_cast
    • Deque in C++
    • C++ Vector Functions
    • C++ 2D Vector
    • C++ List
    • C++ Mutable
    • Enum in C++
    • Abstraction in C++
    • Signal in C++
    • C++ Queue
    • Priority Queue in C++
    • Regular Expressions in C++
    • C++ Hash Table
    • File Handling in C++
    • C++ Stream
    • ifstream in C++
    • C++ ofstream
    • C++ fstream
    • C++ Read File
    • C++ iomanip
    • Macros in C++
    • Templates in C++
    • C++ setprecision
    • C++ Int to String
    • C++ thread( )
    • C++ Thread Pool
    • C++ thread_local
  • Programs
    • Patterns in C++
    • Star Patterns In c++
    • Swapping in C++
    • Reverse Number in C++
    • Palindrome Program in C++
    • Palindrome in C++
    • Factorial Program in C++
    • Fibonacci Series in C++
    • Square Root in C++
    • Random Number Generator in C++
    • Prime Number in C++
    • Leap Year Program in C++
    • Anagram in C++
    • Armstrong Number in C++
    • Reverse String in C++
    • Socket Programming in C++
    • Matrix Multiplication in C++
    • C++ using vs typedef
    • C++ vector vs list
    • C++ vector vs array
  • Interview question
    • C++ Interview Questions
    • Multithreading Interview Questions C++

Related Courses

C++ Training Course

Java Training Course

C Programming Course

Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Corporate Training
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Java Tutorials
  • Python Tutorials
  • All Tutorials
Certification Courses
  • All Courses
  • Software Development Course - All in One Bundle
  • Become a Python Developer
  • Java Course
  • Become a Selenium Automation Tester
  • Become an IoT Developer
  • ASP.NET Course
  • VB.NET Course
  • PHP Course

© 2020 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you
Book Your One Instructor : One Learner Free Class

Let’s Get Started

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA Login

Forgot Password?

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you

Special Offer - C++ Training (4 Courses, 3 Projects, 4 Quizzes) Learn More