Home »
C programs »
C bitwise operators programs
C program to swap two bits of a 32-bit integer number
Here, we are going to learn how to swap two bits of a 32-bit integer number in C programming language?
Submitted by Nidhi, on July 31, 2021
Problem Solution:
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.
C Bitwise Operators Programs »