4. Topic 4(COLON) Data Representation and Boolean Logic

Lesson 4.5: Bitwise Operations And Shifts

#### Lesson focus #### Learning outcomes Students should be able to:.

Lesson 4.5: Bitwise Operations and Shifts

Introduction

In this lesson, we will dive into the world of bitwise operations and shifts. Are you ready to become a bitwise wizard? 🧙‍♂️ By the end of this lesson, you’ll understand how computers manipulate binary data and how logic plays a vital role in your favorite technologies!

Learning Objectives:

By the end of this lesson, you will be able to:

  • Understand and apply the bitwise operators: AND, OR, NOT, and XOR to binary patterns.
  • Perform logical shifts left and right and understand how they affect numbers by multiplying or dividing by powers of two.
  • Use masking techniques with AND and OR to test, set, and clear individual bits.
  • Recognize where bitwise techniques are used in real systems, such as flags, permissions, and color channels.
  • Apply bitwise AND, OR, NOT, and XOR to binary values.

Bitwise Operators

Bitwise operations are fundamental tools when working with binary numbers. Let's break down the four main operators:

Bitwise AND (&)

The AND operator takes two binary values and compares them bit by bit. If both bits are 1, the result is 1; otherwise, it's 0.

Example:

Let’s say we have two binary numbers:

  • A: 1101
  • B: 1011

Now, let’s apply the AND operation:

$$

egin{array}{cc}

A & B & A \land B \\

1101 & 1011 & 1001

$\end{array}$

$$

So, $ 1101 \, \text{AND} \, 1011 = 1001 $!

Bitwise OR (|)

The OR operator also compares bits, but if either bit is 1, the result is 1.

Example:

Using the same values as above:

$$

egin{array}{cc}

A & B & A \lor B \\

1101 & 1011 & 1111

$\end{array}$

$$

So, $ 1101 \, \text{OR} \, 1011 = 1111 $!

Bitwise NOT (~)

The NOT operator flips each bit. For a binary digit, it means 0 becomes 1 and 1 becomes 0.

Example:

Take the number A again:

$$

egin{array}{cc}

$A & \sim A \\$

1101 & 0010

$\end{array}$

$$

So, $ \text{NOT} \, 1101 = 0010 $!

$### Bitwise XOR (^) $

The XOR operator stands for exclusive OR. This means that if either of the bits is 1 but not both, the result is 1.

Example:

Continuing with our examples:

$$

egin{array}{cc}

A & B & A \oplus B \\

1101 & 1011 & 0110

$\end{array}$

$$

So, $ 1101 \, \text{XOR} \, 1011 = 0110 $!

Logical Shifts

Now that we've got the bitwise operations down, let’s discuss logical shifts! Logical shifts are operations that move the bits of a binary number left or right.

Left Shift (<<)

When we shift a binary number to the left, we essentially multiply it by $2^n$, where $n$ is the number of positions shifted.

Example:

If we take the number 0001 (which is 1 in decimal) and shift it left by 1 position:

$$

0001 << 1 = 0010 \quad (2 \text{ in decimal})

$$

If we shift left by 2 positions:

$$

0001 << 2 = 0100 \quad (4 \text{ in decimal})

$$

Right Shift (>>)

A right shift divides the number by $2^n$.

Example:

If we take 0001 again and shift it right by 1 position:

$$

0001 >> 1 = 0000 \quad (0 \text{ in decimal})

$$

If we shift it right by 2 positions:

$$

0001 >> 2 = 0000 \quad (0 \text{ in decimal})

$$

Masking

Masking is a technique that allows us to manipulate specific bits within a binary number. It’s used to test, set, or clear individual bits.

Testing Bits

We can use the AND operator with a mask to check if a specific bit is set. For example, if we want to check if the second bit of 0110 is on:

$$

egin{array}{cc}

Value & Mask & Result \\

0110 & 0010 & 0010

$\end{array}$

$$

Since the result is not 0, the second bit is set! 😊

Setting Bits

To set a bit, we can use the OR operator with a mask. If we want to set the first bit of 0000:

$$

$0000 | 0001 = 0001$

$$

Clearing Bits

To clear a bit, we can use the AND operator with a negated mask. To clear the second bit in 0110:

$$

$0110 \land \sim 0010 = 0100$

$$

Real-World Applications

Bitwise operations have prominent applications in computer science and real-world systems. Here are a few:

  • Flags and Permissions: In operating systems, bitwise operations are used to manage user permissions efficiently without using excessive memory.
  • Color Channels: Bitwise operations are crucial when working with graphics, where colors are often represented in binary (e.g., RGB values).
  • Network Protocols: Bitwise operations help in error detection and correction in data communication.

Conclusion

You’ve now unlocked the basics of bitwise operations, shifts, and masking! These concepts play a big role in how computers process and store data. Understanding them will give you deeper insights into what happens under the hood of your favorite software and hardware! 💻

Study Notes

  • Bitwise operators include AND, OR, NOT, and XOR.
  • Logical left shifts multiply a number by 2 per shift; right shifts divide it.
  • Masking can be used for testing, setting, and clearing bits.
  • Applications of bitwise operations are prevalent in flags, permissions, and colors.
  • Remember to practice with binary examples for mastery!

Practice Quiz

5 questions to test your understanding

Lesson 4.5: Bitwise Operations And Shifts — Computing | A-Warded