Q:

C program to swap two bits of a 32-bit integer number

0

C program to swap two bits of a 32-bit integer number

All Answers

need an explanation for this answer? contact us directly to get an explanation for this answer

Read an integer number and bit positions. Then swap bit positions of a given number using C program.

Program:

The source code to swap two bits of a 32-bit integer number is given below. The given program is compiled and executed using GCC compile on UBUNTU 18.04 OS successfully.

// C program to swap two bits of a
// 32-bit integer number

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
    int num = 0;
    int pos1 = 0;
    int pos2 = 0;

    int i = 0;

    printf("Enter Number: ");
    scanf("%d", &num);

    printf("Enter position1: ");
    scanf("%d", &pos1);

    printf("Enter position2: ");
    scanf("%d", &pos2);

    printf("Binary number before swapping bits: \n");
    for (i = 31; i >= 0; i--) {
        if (num & (1 << i))
            printf("1");
        else
            printf("0");
    }

    if (((num & (1 << pos1)) >> pos1) ^ ((num & (1 << pos2)) >> pos2)) {
        num ^= (1 << pos1);
        num ^= (1 << pos2);
    }

    printf("\nResult is: %d\n", num);
    printf("Binary number after swapping bits: \n");
    for (i = 31; i >= 0; i--) {
        if (num & (1 << i))
            printf("1");
        else
            printf("0");
    }

    printf("\n");

    return 0;
}

Output:

RUN 1:
Enter Number: 191
Enter position1: 5
Enter position2: 6
Binary number before swapping bits: 
00000000000000000000000010111111
Result is: 223
Binary number after swapping bits: 
00000000000000000000000011011111

RUN2:
Enter Number: 8
Enter position1: 2
Enter position2: 3
Binary number before swapping bits: 
00000000000000000000000000001000
Result is: 4
Binary number after swapping bits: 
00000000000000000000000000000100

RUN 3:
Enter Number: 2730
Enter position1: 1
Enter position2: 2
Binary number before swapping bits: 
00000000000000000000101010101010
Result is: 2732
Binary number after swapping bits: 
00000000000000000000101010101100

Explanation:

Here, we read an integer number and bit positions from the user. Then we interchanged the bits from given positions. After that, we printed the result on the console screen.

need an explanation for this answer? contact us directly to get an explanation for this answer

total answers (1)

C solved programs/examples on Bitwise Operators

This question belongs to these collections

Similar questions


need a help?


find thousands of online teachers now
C program to check a given number is the power of ... >>
<< C program to read a byte and print bits between gi...