# Bitwise Operators in C++ Programming Language

Bitwise operators are operators that operate on integers and units at the binary level. This means that they are looking directly at binary digits or bits of an integer. It all sounds scary, but in truth, bitwise operators are quite easy to use and also very useful. In this article, I will introduce you to Bitwise operators in C ++ programming language.

## Bitwise operators in C ++

Let’s start with the Bitwise operators you should know in the C ++ programming language.

Also, Read – The Fundamentals of C++ Programming Language.

#### Bitwise OR:

The first Bitwise operator in C ++ that you should know about is Bitwise OR. Let’s see how to use this operator:

```int a = 5; // 0101b (0x05)
int b = 12; // 1100b (0x0C)
int c = a | b; // 1101b (0x0D)
std::cout << "a = " << a << ", b = " << b << ", c = " << c << std::endl;```
`a = 5, b = 12, c = 13`

A bitwise OR works at a bitwise level and uses the following Boolean truth table:

```true OR true = true
true OR false = true
false OR false = false```

When the binary value of a (0101) and the binary value of b (1100) are combined by OR, we get the binary value of 1101.

#### Bitwise XOR (exclusive OR):

The second Bitwise operator in C ++ that you should know about is Bitwise XOR which stands for exclusive OR. Let’s see how to use this operator:

```int a = 5; // 0101b (0x05)
int b = 9; // 1001b (0x09)
int c = a ^ b; // 1100b (0x0C)
std::cout << "a = " << a << ", b = " << b << ", c = " << c << std::endl;```
`a = 5, b = 9, c = 12`

A bitwise (or exclusive) XOR works at the bitwise level and uses the following Boolean truth table:

```true OR true = false
true OR false = true
false OR false = false```

Note that with an XOR operation true OR true = false while with the operations true AND / OR true = true, hence the exclusive nature of the XOR operation.

#### Bitwise AND:

The next Bitwise operator in C ++ that you should know about is the AND operator. Let’s see how to use it:

```int a = 6; // 0110b (0x06)
int b = 10; // 1010b (0x0A)
int c = a & b; // 0010b (0x02)
std::cout << "a = " << a << ", b = " << b << ", c = " << c << std::endl;```
`a = 6, b = 10, c = 2`

A bitwise AND works at the bitwise level and uses the following Boolean truth table:

```TRUE AND TRUE = TRUE
TRUE AND FALSE = FALSE
FALSE AND FALSE = FALSE```

When the binary value for a (0110) and the binary value for b (1010) are combined, we get the binary value 0010.

#### Bitwise << – Left Shift:

The next bit operator that you should know in the C ++ programming language is the left shift operator. Let’s see how to use this operator:

```int a = 1; // 0001b
int b = a << 1; // 0010b
std::cout << "a = " << a << ", b = " << b << std::endl;```
`a = 1, b = 2`

Bit shifting left shifts the bits of the value on the left (a) by the number specified on the right (1), essentially filling the least significant bits with 0’s, thus shifting the value from 5 (binary 0000 0101) to the left 4 times (for example 5 << 4) will give the value of 80 (binary 0101 0000).

You may notice that shifting a value to the left 1 time is also equivalent to multiplying the value by 2.

#### Bitwise >> – Right Shift:

The next binary operator that you should know in the C ++ programming language is the right shift operator. Let’s see how to use this operator:

```int a = 2; // 0010b
int b = a >> 1; // 0001b
std::cout << "a = " << a << ", b = " << b << std::endl;```
`a = 2, b = 1`

Right bit shift shifts the bits of the left value (a) by the number specified to the right (1); It should be noted that while the operation of a right shift is standard, what happens to the bits of a right shift on a signed negative number is implementation-defined and therefore cannot be guaranteed to be portable.

I hope you liked this article on the Bitwise operators that you need to know in the C++ programming language. Feel free to ask your valuable questions in the comments section below. 