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|
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.
Program for Bitwise Operator in C
Let us now take a look at the program using all the bitwise operators.
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 );
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
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.
Can you define the different types of operators in programming?
The different types of operators are arithmetic operators, assignment operators, increment and decrement operators, logical operators, comparison operators, and bitwise operators are all examples of operators. +, -, *, /, and % are arithmetic operators. They are used to conduct two-operand arithmetic operations. =, +=, -=, *=, /=, and percent = are the assignment operators. They are used to give a variable a value. ++ and — are increment operators. They are used to add or subtract one to a value. The operators for decrement are — and —. They're used to subtract one from a value. &&, ||, and! are logical operators. They are used to combine two logical expressions into one. ==,!=, >, >=, and = are comparison operators. They're utilised to make a comparison between two operands. &, |, and are bitwise operators. They're used to do two-operand bitwise operations.
How do you make codes more efficient?
As much as feasible, keep the codes short. This means that the information is represented by the code using as few symbols as feasible. Ascertain that the codes are structured in a logical manner. This indicates that the codes are organised in a way that makes them simple to comprehend and apply. Make sure the codes are error-free. This indicates that the codes are error-free and may be utilised correctly. Check to see if the codes are up to date. This indicates that the codes represent the most recent information revisions and updates. Also, make sure the codes are simple to use. This indicates that the codes are simple to comprehend and apply.
What are the applications of bitwise operators?
A group of operators known as bitwise operators work with individual bits in a number. AND, OR, XOR, NOT, SHIFT, and MASK are the 6 bitwise operators. Each bit in the number is regarded as a 0 or 1 by the operators, which work with the binary representation of numbers. They can be used to alter the sign of a number, set it to 0 or 1, move bits to the left or right, or combine two numbers to make a new one.