Unlocking the Power of Bitwise Operations in C Programming
The Arithmetic-Logic Unit: Where Math Magic Happens
Deep within the CPU lies the arithmetic-logic unit (ALU), where mathematical operations like addition, subtraction, multiplication, and division are performed at the bit level. But how do we tap into this power in C programming? The answer lies in bitwise operators.
Bitwise AND: The Gatekeeper of 1s
The bitwise AND operator (&) is a meticulous gatekeeper, only allowing 1s to pass through if both corresponding bits of two operands are 1. If either bit is 0, the result is 0. Let’s see this in action with an example:
Example 1: Bitwise AND
Suppose we want to perform a bitwise AND operation on two integers, 12 and 25. The result would be…
Bitwise OR: The Inclusive Operator
Unlike the bitwise AND operator, the bitwise OR operator (|) is more inclusive, returning 1 if at least one corresponding bit of two operands is 1. This operator is denoted by |.
Example 2: Bitwise OR
Let’s explore the result of a bitwise OR operation on two integers…
Bitwise XOR: The Exclusive Operator
The bitwise XOR operator (^) is a rebel, returning 1 only if the corresponding bits of two operands are opposite. It’s denoted by ^.
Example 3: Bitwise XOR
What happens when we apply the bitwise XOR operator to two integers?
The Mysterious Bitwise Complement Operator
The bitwise complement operator (~) is a unary operator that works on a single operand, flipping 1s to 0s and vice versa. But there’s a twist…
The 2’s Complement Connection
For any integer n, the bitwise complement of n is not what you’d expect. It’s actually -(n + 1). To understand this, you need to know about 2’s complement.
2’s Complement: The Binary Magic
Two’s complement is an operation on binary numbers, where the complement of a number is added to 1. For example, the bitwise complement of 35 is 220 (in decimal), but its 2’s complement is -36.
Bitwise Complement of Any Number N
So, how do we calculate the bitwise complement of any number N? It’s simple: -(N+1).
Example 4: Bitwise Complement
Let’s see this in action…
Shift Operators: The Bit Shufflers
There are two shift operators in C programming: the right shift operator (>>) and the left shift operator (<<).
Right Shift Operator: The Bit Mover
The right shift operator shifts all bits towards the right by a specified number of bits.
Left Shift Operator: The Bit Filler
The left shift operator shifts all bits towards the left by a specified number of bits, filling vacated positions with 0.
Example #5: Shift Operators
Let’s explore the results of shift operations…
Table of Contents
- Bitwise AND
- Bitwise OR
- Bitwise XOR
- Bitwise Complement
- Shift Right
- Shift Left