Write a C program to swap two bits in a bytes.

In the realm of programming, especially in languages like C, bit manipulation is a powerful tool that allows developers to perform various operations at the lowest level of data representation. One interesting task within this domain is swapping two bits within a byte. In this blog, we’ll delve into a simple yet insightful C program that accomplishes this bit-swapping magic.

Understanding Bit Manipulation:

Before diving into the code, let’s have a brief overview of bit manipulation. In the binary world, data is represented using bits, which are the smallest units of information. Bit manipulation involves performing operations directly on these bits to achieve specific tasks, such as setting, clearing, toggling, or swapping them.

The Problem at Hand:

Consider a scenario where you have a byte (8 bits) and you want to swap two specific bits within that byte. This may seem like a trivial task, but it provides a great opportunity to explore the bitwise operators in C.

The C Program:

#include <stdio.h>

// Function to swap two bits within a byte
unsigned char swapBits(unsigned char byte, int bit1, int bit2) {
    // Extract the values of the two bits
    int bit1Val = (byte >> bit1) & 1;
    int bit2Val = (byte >> bit2) & 1;

    // XOR the two bits to swap them
    byte = byte ^ ((bit1Val << bit1) | (bit2Val << bit2));

    return byte;
}

int main() {
    // Example usage
    unsigned char byte = 0b01010101; // Initial byte: 85 in decimal

    printf("Original Byte: %d\n", byte);

    int bitToSwap1 = 2;
    int bitToSwap2 = 5;

    // Swap the specified bits
    byte = swapBits(byte, bitToSwap1, bitToSwap2);

    printf("Byte after swapping bits %d and %d: %d\n", bitToSwap1, bitToSwap2, byte);

    return 0;
}

Explanation of the Code:

  1. The swapBits function takes a byte and two bit positions as parameters.
  2. It extracts the values of the specified bits using bitwise right shifts and bitwise AND operations.
  3. The XOR (^) operation is then applied to swap the two bits.
  4. The main function demonstrates the usage of the swapBits function with an example byte and specified bit positions.

Conclusion:

Bit manipulation is a fascinating aspect of low-level programming, providing developers with the ability to perform intricate operations on individual bits. The C program presented here showcases how to swap two bits within a byte, offering a glimpse into the world of bitwise operators. Understanding and mastering these concepts can open the door to more efficient and optimized code in various programming scenarios.

Read my other blogs:

C Program to find Given Number is Prime or not.

Write a program to find Factorial Numbers of a given numbers.

Embedded C language Interview Questions.

Automotive Interview Questions

Understanding AUTOSAR Architecture: A Guide to Automotive Software Integration

What is AUTOSAR

MCAL Layer in AUTOSAR

Types of ECU in CAR

Big Endian and Little Endian in Memory

Zero to Hero in C language Playlist

Embedded C Interview Questions

Subscribe my channel on Youtube: Yogin Savani

Leave a Comment

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