×

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

C++ this pointer

'this' is a pointer that points to the object for which this function was called. The 'this' pointer holds the memory address of the current object. The 'this' pointer is implicitly passed to...

2 minutes read.

External merge sort in C++

External merge sort in C++ External sorting is a concept for a group of sorting algorithms capable of handling large data volumes. External sorting is needed if the information getting sorted...

9 minutes read.

Sizeof() Operators in C++

sizeof() Operators in C++ The sizeof() operator in C++ defines the size of variables, constants, or data types. It is a unique operator that manipulates other operators and returns the size...

4 minutes read.

Binary to Decimal in C++

We must create a software to convert a binary number into an equivalent decimal value given a binary number as input. Example: // C++ program to convert binary to decimal #include < iostream...

3 minutes read.

How to calculate size of string in C++

What is string in C++? In C++, a string is a sequence of characters. The string data type is part of the Standard Template Library (STL) and is defined in the...

4 minutes read.

Handling multiple clients on the Server with multithreading using Socket Programming in C or C++

To understand this guide completely, the reader is assumed to be familiar with the foundations of server and client models and socket programming. If one wants to create any scalable...

7 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++ Recursion Function

A programming method called recursion that uses a function to call itself to address lesser problems. The Fibonacci sequence, factorial computation, and tree traversal are just a few of the...

4 minutes read.

Multiple Inheritance

C++ Multiple Inheritance Multiple inheritance is such an inheritance in which a derived class inherits properties of more than one base class.     C++ Multiple Inheritance Example In this example, two base classes Square and...

2 minutes read.

sort() function in C++

This tutorial covers the various built-in sort functions found in the C++ algorithm’s library.  What Does C++ Sort Mean? The concept of sorting in C++ entails rearranging an array's elements in a...

3 minutes read.

Diamond Pattern using While-loop in C++

What is while Loop? A while loop or while statement repeats all code of its body as long as a specific condition is satisfied. The loop ends if or when the...

5 minutes read.

Features and Use of Pointers in C/C++

What is a pointer? A pointer is mainly used to store the address of another variable. The * operator creates a pointer variable, which points to a data type (like an...

7 minutes read.

Function Pointer in C++

Definition: A function pointer in C++ is the same as a usual pointer which is used to point some variables. Function pointers are used to point functions or say store the...

4 minutes read.

Do-While Loop Examples in C++

Before we move on the examples of Do-While loop, let’s learn little bit about the Do-While loop in C++ language. Do While loop An iterative loop that checks the condition at the...

5 minutes read.

Reserved Keywords in C++

What are reserved keywords in C++? There are a few keywords that cannot be used as identifiers as those words are reserved for some other purposes, such keywords are called reserved...

15 minutes read.

C++ Friend function

A friend function has the right to access all private and protected members of a class although it is defined outside that class' scope. Syntax class className{     ......     friend retyrn_type function_Name(argument);     .......   }   return_type function_Name(argument){     ......   } C++ friend function Example #include <iostream>   using namespace std;   class Length   {       private:           int meter;       public:           Length(): meter(5) { }           friend int addMethod(Length); //friend function declaration   };   int addMethod(Length l) // friend function definition   {       l.meter += 10; //accessing private data from non-member function       return l.meter;   }   int main()   {       Length L;       int totallength;       totallength=addMethod(L);       cout<<"Length: "<< totallength;       return 0;   } Output: Length: 15   C++ friend function...

1 minute read.

Containership in C++

In C++, it is possible to create an object in one class into another class, and that object is a member of another class. This relationship is known as a...

4 minutes read.

C++ OOPs Concept

The main goal of C ++ programming is to add the idea of ​​object orientation to the C programming language. Inheritance, data binding, polymorphism and other concepts are part of...

4 minutes read.

Include Guards in C++

In C++ programming, we frequently utilize a class more than once, so it is necessary to create a header file and include it in the main program. Now, occasionally a...

3 minutes read.

How the value is passed in C++

Introduction: The call-by-value method of giving arguments to a function duplicates the real value of an argument into the formal parameter of the function. In this instance, modifications to the parameter...

5 minutes read.