C++ Tutorial Index

C++ Tutorial C++ History C++ Installation C++ First Program C++ cin and cout C++ Data type C++ Variable C++ operator C++ Keywords

C++ Control Statements

C++ If C++ Nested if C++ If-else C++ If-else-if C++ Switch C++ Break C++ Continue C++ Goto C++ For loop C++ While loop C++ Do while loop

C++ Functions

C++ Call by Value C++ Call by Reference C++ Recursion Function C++ Inline function C++ Friend function

C++ Arrays

Single dimension array Two dimension array

C++ Strings

C++ Strings

C++ Inheritance

C++ Inheritance Single level Inheritance Multilevel Inheritance Multiple Inheritance Hierarchical Inheritance Hybrid Inheritance

C++ Polymorphism

C++ Polymorphism C++ Overloading C++ Overriding C++ Virtual Function

C++ Pointers

C++ Pointers C++ this pointer

C++ Exception Handling

C++ Exception Handling

C++ Constructors

C++ Constructors Default Constructor Parameterize Constructor Copy constructor Constructor Overloading Destructor

C++ File Handling

C++ File Handling C++ Writing to file C++ Reading file C++ Close file

Miscellaneous

C Vs C++ C++ Comments C++ Data Abstraction C++ Identifier C++ Memory Management C++ Storage Classes C++ Void Pointer C++ Array To Function C++ Expressions C++ Features C++ Interfaces C++ Encapsulation std::min in C++ External merge sort in C++ Remove duplicates from sorted array in C++ Precision of floating point numbers Using these functions floor(), ceil(), trunc(), round() and setprecision() in C++ C++ References C++ Friend Functions C++ Mutable keyword Unary Operators in C++ Initialize Array of objects with parameterized constructors in C++ Differences between #define & const in C/C++ C++ Program to Implement Shell Sort C++ Program to Implement Merge Sort Storage Classes in C Vector resize() in C++ Passing by Reference Vs. Passing by the pointer in C++ Free vs delete() in C++ goto statement in C and C++ C++ program to read string using cin.getline() C++ String Concatenation Heap Sort in C++ Swap numbers in C++ Input Iterators in C++ Fibonacci Series in C++ C ++ Program: Alphabet Triangle and Number Triangle C++ Program: Matrix Multiplication C++ Program to Print Fibonacci Triangle Stack in C++ Maps in C++ Queue in C++ C++ Bitset C++ Algorithms Priority Queue in C++ C++ Multimap C++ Deque Function Pointer in C++ Sizeof() Operators in C++ C++ array of Pointers free() Vs delete in C Timsort Implementation Using C++ CPP Templates C++ Aggregation C++ Enumeration C++ Math Functions C++ Object Class C++ Queue Initialize Vector in C++ Vector in C++ C++ STL Components Function overloading in C++ C++ Maximum Index Problem C++ find missing in the second array C++ Program to find the product array puzzle C++ Program To Find Largest Subarray With 0 Sum C++ Program To Move All Zeros To The End Of The Array C++ Program to find the element that occurs once C++ Program to find the largest number formed from an array Constructor Vs Destructor C++ Namespaces C++ OOPs Concept C++ Static C++ Structs C++ Try-Catch C++ User Defined Exceptions C++ Virtual Destructor C++ vs C# Malloc() and new in C++ Palindrome Number Program in C++ Snake Code in C++ Splitting a string in C++ Structure Vs Class in C++ Virtual Function Vs Pure Virtual Function C++ Bidirectional Iterators C++ Forward Iterators C++ Iterators C++ Output Iterators C++ Range-based For Loop Converting string into integer in C++ LCM Program in C++ Type conversion in C++ Add two numbers using the function in C++ Advantage and disadvantage friend function C++ Armstrong Number Program in C++ ATM machine program in C++ using functions Binary to Decimal in C++ Bit Manipulation in C++ C++ Constructor C++ Dijkstra Algorithm Using the Priority Queue C++ int into String C++ Signal Handling Decimal to Binary in C++ Decimal to Hexadecimal in C++ Decimal to Octal in C++ Factorial Program in C++ Function in C++ Hexadecimal to Decimal in C++ Octal to Decimal in C++ Reverse a Number in C++ Structure Vs Class in C++ C++ Forward Iterators C++ Output Iterators C++ Prime number program Char Array to String in C++ Constructor Overloading in C++ Default arguments in C++ Different Ways to Compare Strings in C++ Dynamic Binding in C++ Program to convert infix to postfix expression in C++ SET Data Structure in C++ Upcasting and Downcasting in C++ Reverse an Array in C++ Fast Input and Output in C++ Delete Operator in C++ Copy elision in C++ C++ Date and Time C++ Bitwise XOR Operator Array of sets in C++ Binary Operator Overloading in C++ Binary Search in C++ Implementing the sets without C++ STL containers Scope Resolution Operator in C++ Smart pointers in C++ Types of polymorphism in C++ Exception Handling in C++ vs Java Const Keyword in C++ Type Casting in C++ Static keyword in C++ vs Java Inheritance in C++ vs Java How to concatenate two strings in C++ Programs to Print Pyramid Patterns in C++ swap() function in C++ Structure of C++ Program Stringstream in C++ and its applications rand() and srand() in C / C++ C++ Ternary Operator C++ Scope of Variables While Loop Examples in C++ Star pattern in C++ using For Loops For Loop Examples in C++ Do-While Loop Examples in C++ Top 5 IDEs for C++ That You Should Try Once Assertions in C/C++ C++ Convert Int to String Continue in C++ While loop Diamond Pattern in C++ using For Loop How to Reverse a String in C++ using Do-While Loop How to Reverse a String in C++ using For Loop How to Reverse a String in C++ using While Loop Infinite loop in C++ Loops in C++ Returning Multiple Values from a Function using Tuple and Pair in C++ wcscpy(), wcslen(), wcscmp() Functions in C++

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).



ADVERTISEMENT
ADVERTISEMENT