Bitwise Operators in C [With Coding Example]

Introduction

Operators are essential components of every programming language. They are the symbols that are used to achieve certain logical, mathematical, or other programming operations. C provides various operators for performing multiple operations, such as arithmetic, logical, and bit manipulation. There are eight different types of operators in C. These are:

  • Arithmetic Operators in C
  • Logical Operators in C
  • Conditional Operator in C
  • Relational Operators in C
  • Increment and Decrement Operators in C
  • Bitwise Operators in C
  • Assignment Operators in C
  • Special Operators in C

In this article, you will learn about the Bitwise Operators in C and how to implement it.

What is a Bitwise Operator?

The Bitwise Operator in C is a type of operator that operates on bit arrays, bit strings, and tweaking binary values with individual bits at the bit level. For handling electronics and IoT-related operations, programmers use bitwise operators. It can operate faster at a bit level. 

The Bitwise Operator in C performs its operation on the individual bits of its operand, where operands are values or expressions on which an operator operates. These operators are also used to perform the core actions as well as high-level arithmetic operations that require direct support of the processor. We can further subcategorize bitwise operators into three subtypes based on their working principles, logical (Bitwise AND, OR, and XOR), Shift (Right Shift and left shift), and Complement (Bitwise NOT).

 There are six different Bitwise Operators in C. These are:

· Bitwise AND operator (&)

· Bitwise OR operator (|)

· Bitwise exclusive OR operator (^)

· Binary One’s Complement or Bitwise NOT operator (~)

· Bitwise Left shift operator (<<)

· Bitwise Right shift operator (>>)

Using bitwise operators, programmers can change the individual bits of any value contained in the operand. We can view a single byte of computer memory as 8-bits that signifies the true or false status of 8 flags. Bitwise operators are usually applied to define flag values in operating systems and driver software. For instance, in a file property, the read-only mode is conceptually expressed as a flag bit in the operating system, and the bitwise operator is used to toggle between the true and the false value.

Here is a table that shows how the computation of bitwise operators results.

X y x & y x | y x ^ y
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0

There are six different types of Bitwise Operators in C. These are:

The Bitwise AND (&) in C: The C compiler recognizes the Bitwise AND with & operator. It takes two operands and performs the AND operation for every bit of the two operand numbers. It is a binary operator. The output of this operator will result in 1 only if both bits are 1.

The Bitwise OR (|) in C: The C compiler recognizes the Bitwise OR with | operator. It takes two operands and performs the OR operation for every bit of the two operand numbers. It is also a binary operator. The output of this operator will result in 1 if any one of the two bits is 1.

The Bitwise XOR (^) in C: The C compiler recognizes the Bitwise XOR with ^ operator. It takes two operands and performs the XOR operation for every bit of the two operand numbers. It is also a binary operator. The output of this operator will result in 1 if both the bits have different values.

Binary One’s Complement or Bitwise NOT operator (~) in C: The C compiler recognizes the Bitwise NOT with ~ operator. It takes only one operand and performs the inversion of all digits of it. It is a unary operator. The output of this operator will invert all the existing bits of that operand.

Bitwise Left shift operator (<<) in C: The C compiler recognizes the left shift operation with this <<. It takes only two operands and shifts all the bits of the first operand to the left. The second operand decides how many numbers of places this operator will shift its bits. It is a binary operator.

Bitwise Right shift operator (>>) in C: The C compiler recognizes the left shift operation with this >>. It takes only two operands and shifts all the bits of the first operand to the right. The second operand decides how many numbers of places this operator will shift its bits. It is a binary operator.

Read: Operators in Python: A Beginner’s Guide to Arithmetic, Relational, Logical & More

Program for Bitwise Operator in C

Let us now take a look at the program using all the bitwise operators.

#include <stdio.h>

int main()

 {

unsigned char x = 20, y = 21; // x = 20 (00010100), y = 21 (00010101)

int g = 0;

   g = x & y; /* 20 = 010100 */

   printf(” The result of Bitwise AND is %d \n”, g );

   g = x | y; /* 21 = 010101 */

   printf(” The result of Bitwise OR is %d \n”, g );

   g = x ^ y; /* 1 = 0001 */

   printf(” The result of Bitwise XOR is %d \n”, g );

   g = ~x;

   printf(” The result of Bitwise NOT is %d \n”, g );

   g = x << 1;

   printf(” The result of Bitwise Left Shift is %d \n”, g );

   g = x >> 1;

   printf(” The result of Bitwise Right Shift is %d \n”, g );

return 0;

}

OUTPUT:

The result of Bitwise AND is 20

 The result of Bitwise OR is 21

 The result of Bitwise XOR is 1

 The result of Bitwise NOT is -21

 The result of Bitwise Left Shift is 40

 The result of Bitwise Right Shift is 10

Also Read: Python Tutorial: Setting Up, Tools, Features, Applications, Benefits, Comparison

Conclusion

Bitwise operators are a particular type of operators in C used for bit-level programming. It is essential to know the use of the bitwise operator as it brings an efficient way of saving space in representing data. Programmers use these operators in various fields, such as systems programming, embedded programming, and designing protocols. Hence, programmers need to know its use. 

upGrad brings programming with C and a lot more with upGrad’s PG Diploma in Software Development Specialisation in Full Stack Development. A program to make you emerge as a full stack developer and learning to build some of the awesome applications. It is an extensive 12-months program that includes working on live projects and assignments and also training 15 programming languages and tools. Along with it, it has all-time career support with mock interviews and job assistance.

Land on Your Dream Job

UPGRAD AND IIIT-BANGALORE'S PG DIPLOMA IN FULL STACK
Enroll Today

Leave a comment

Your email address will not be published. Required fields are marked *

×