×

Bit Manipulation in C++

The high-level language in which we communicate is not understood by the computer. As a result, there existed a standard mechanism for understanding any instruction sent to the computer. At the most basic level, each instruction was converted into bits of digital data. The sequence of bits denotes that this is a specific instruction.

What is a Bit in C++?

A bit is the fundamental unit of data storage in digital notation.

Bit is represented by two values as follows:

1: It indicates whether or not the signal is present.

0: It means the signal is not present or is false.

Any instruction's logical state is represented by bits. The base of the series of bits is 2. As a result, when we have a series of binary digits, they are read from left to right, which increases the power of two. So, now that we’ve covered the basics of a little cheat in C ++, let’s take a look at how it’s done.

Bit Manipulation

Bit manipulation is described as executing fundamental operations on bits at the n-digit level. It's a quick and simple procedure because it works directly on the machine. Let's get started with the fundamentals of bit manipulation in C++.

AND

The logical AND operator takes two operands and returns true if they are both true. && is the sign.

Take a peek at the AND operator's truth table.

ABA&&B
111
000
100
010

A and B are both high on the last row, resulting in a high output.

Example of program showing the function of AND operator in C++:

#include <iostream>  
using namespace std;  
int main() {  
        int i = 2;  
        int j = 4;  
        // false && false = false  
        cout << ((i == 0) && (i > j)) << endl;  
        // false && true = false  
        cout << ((i == 0) && (i < j)) << endl;  
        // true && false = false  
     cout << ((i == 2) && (i > j)) << endl;  
        // true && true = true  
        cout << ((i == 2) && (i < j)) << endl;  
      return 0;  
}  

OUTPUT:

0
0
0
1

Explanation:

In the above program in C++, in the line number seven we have demonstrated the use of AND operator which is basically telling us what condition is true or not .i.e both the condition has to be true for the further execution.

OR

If any of the two operands' inputs is high, logical OR produces a high output. || is the sign. Take a look at the OR operator's truth table.

ABA&&B
111
000
101
011

The first row may be seen here. Because both A and B are low, the outcome is 0. (a low output).

Example of program showing the function of OR operator in C++:

#include <iostream>  
#include <bits/stdc++.h>
#include <stdlib>
using namespace std;  
int main() {  
    int i = 2;  
    int j = 10;  
    // false && false = false  
    cout << ((i == 0) || (i > j)) << endl;  
    // false && true = true  
    cout << ((i == 0) || (i < j)) << endl;  
    // true && false = true  
    cout << ((i == 2) || (i > j)) << endl;  
    // true && true = true  
    cout << ((i == 2) || (i < j)) << endl;  
    return 0;  
}  

OUTPUT:

0
1
1
1

Explanation

In the above program in C++, in the line number nine we have demonstrated the use of OR operator which is basically telling us what condition is true or not .i.e if either of the condition is true both then program will further execute.

NOT

Only one operand is reverted with logical NOT. It raises the operand if it is low, and vice versa. ! is the symbol. Take a look at the NOT operator's truth table.

A!A
01
10

Example of program showing the function of NOT operator in C++:

#include <iostream> 
#inlcude <bits/sdtc++.h>
#include <stdlib>
using namespace std;  
  
int main() {  
     int i = 2;  
     // !false = true  
     cout << !(i == 0) << endl;  
     // !true = false  
     cout << !(i == 2) << endl;  
     return 0;  
}

OUTPUT:

1
0

Explanation

In the above program in C++, in the line number nine we have demonstrated the use of NOT operator which is basically telling the opposite of  the condition we are passing .i.e if i is equal to 0 then adding NOT operator while think the opposite of it .i.e i is not equal to zero.

Left Shift Operator

The value of the left operand is shifted left by the number of bits supplied by the right operand when using the left shift operator. It is indicated by the symbol <<.

Example of program showing the function of left shift operator in C++:

#include<iostream>  
#inlucde<bits/sdtc++.h>
#include<stdlib>
using namespace std;  
int main()  
{  
    // i = 2(0000100001), j = 5(0000000101)  
    unsigned char i = 2, j = 5;  
    // The result is 0001001010  
    cout << "i<<1: "<<  (i<<1) << "\n";  
    // The result is 0001001010  
    cout << "j<<1: " <<  (j<<1);  
    return 0;  
}  	

OUTPUT:

i<<10
j<<18

Explanation:

In the above program, left shift operator operates in binary bits. It is a binary operator that requires two operands to change or change the location of the bits on the left side and add zero to the empty space by moving the bits.

Right Shift Operator

The right shift operator accepts an operand and shifts its value to the right by the number of bits provided in the right operand. >> is the symbol for it.

Example of program showing the function of right shift operator in C++:

#include <bits/stdc++.h> 
#include <stdlib>
#include <>iostream> 
using namespace std;  
int main()  
{  
    // i = 2(00010001), j = 5(00000101)  
    unsigned char i = 2, j = 5;  
    // The result is 000001000  
    cout<< "i>>1: " <<  (i >> 1) << "\n";  
    // The result is 00000100  
    cout<< "i>>1: " <<  (j >> 1);  
    return 0;  
}  

OUTPUT:

i>>2
j>>4

Explanation

In the above program, The right switch operator changes the bit pattern to the switch in the number of areas assigned to the right quotation.

Let us see how to compute XOR from 1 to n:

#include<isotream>
#include<bits/stdc++.h>
#include<stdlib>
// Direct XOR of all numbers from 1 to n
int computeXOR(int n)
{
	if (n % 4 == 0)
		return n;
	if (n % 4 == 1)
		return 1;
	if (n % 4 == 2)
		return n + 1;
	else
		return 0;
}

OUTPUT:

6
7

NOTE:

In the above code input is 6.

Explanation

In the above program in C++, If all input bits are the same, output is false (0) otherwise, the output is true (1).


Related Topics

Palindrome Using While Loop in C++

A palindrome is a word, number, phrase, or other sequence of letters that reads the same backward as forward, such as 101 or MOM. Like other programming languages, C++ also allows...

6 minutes read.

Array of Vectors in C++ STL

Prerequisites: C++ STL Arrays and C++ STL Vector. A group of items kept in consecutive memory region is known as an array. It is to group similar objects of the same...

4 minutes read.

How to declare a 2D array dynamically in C++

In this article, we will learn how to declare the dynamic array in C++. We also learn the initialization of a 2D array using a pointer in C++. Here, we...

3 minutes read.

Input Iterators in C++

What are input iterators? Input iterators are used in sequence for carrying out input operations where each value is read-only. It is pointed by the iterator and further incremented. All the iterators...

4 minutes read.

C++ operator

In this article, we will discuss about the operators in C++ with their types and examples. An operator is specially a symbol that tells compiler to perform specific manipulation. C++ contains...

5 minutes read.

How to create a stack in C++

A stack is a data structure, which is of linear type. A specific order has to be followed while inserting and deleting the elements from the stack. Generally, stack follows...

5 minutes read.

Unary Operators in C++

Unary operators in C++ Unary operator: is operations that function to produce a new value on a single operand. a) unary minus: A minus operator modifies the argument's symbol. A positive number...

3 minutes read.

Find the Size of Array in C/C++ without using sizeof() function

We know that arrays in C/C++ are the most essential data structures as they have the ability to hold the data in a continuous manner line where the address of...

3 minutes read.

Size_t Data Type in C++

In C++, the type to express the object size in bytes is defined as Size_t, an unsigned integer type offered by the standard library for describing the object's size and...

3 minutes read.

Accumulate() and partial_sum() in C++ STL Numeric header

The C++ STL's numeric library includes the numeric header. This library provides efficient numeric arrays, support for random number generation, and fundamental mathematical operations and types. Several of the numeric...

3 minutes read.

Binary Search in C++

The binary search in the C++ programming language will be discussed. By continually halves the array and then seeking specified items from a half array; binary search is a technique...

8 minutes read.

Bit Manipulation in C++

The high-level language in which we communicate is not understood by the computer. As a result, there existed a standard mechanism for understanding any instruction sent to the computer. At...

5 minutes read.

C++ program to read string using cin.getline()

C++ program to read string using cin.getline() C++ getline() is a standard library feature for reading a string or a line from an input source. A getline() function gets characters from...

3 minutes read.

Pattern programs in C++

In this article, we are going to discuss different pattern programs in C++. Program for Printing * patterns: Right Angle Triangle* pattern #include <iostream> using namespace std; int main() {     int rows;     cout <<...

3 minutes read.

Desired Capabilities in Selenium Web Driver in C++

A class called Desired Capabilities is used to specify a set of fundamental requirements, such as browser, operating system, and version combinations.to carry out automated testing of a web application...

7 minutes read.

Program that produces different results in C and C++

Introduction: There are many such programs that compile run both in C and C++ but give different outcomes when compiled by the C and C++ compilers. There are a variety of such...

6 minutes read.

Splitting a string in C++

Any programming language must have the ability to work with string data. For programming needs, we sometimes need to separate string data. Many computer languages provide a split() method that...

4 minutes read.

wcscpy(), wcslen(), wcscmp() Functions in C++

There are many built-in functions in C++ programming language which differentiate it from C programming language in most hardware-coded languages. We will now closely look into the applications of three...

4 minutes read.

Pointer to Object in C++

What is a pointer? A pointer in C++ is used to point the variable by storing the address of the variable. In C++, to print the address of the variable, we...

4 minutes read.

C++ Program to Implement Shell Sort

    C++ Program to Implement Shell Sort shell sort is basically an Insertion Sort variant. In the insertion sort, we only transfer elements ahead of one location. Many movements are involved...

2 minutes read.