Write a program to set, reset and complement bit of a given number.
#include<stdio.h> void Print_Num_inBinary(int); int Set_Bit_Status(int,int); int CLear_Bit_Status(int,int); int Complement_Bit_Status(int,int); int main() { int num,bit,option; printf("Enter a Number = "); scanf("%d",&num); Print_Num_inBinary(num); printf("Enter a bit(Position) to check = "); scanf("%d",&bit); if(bit >=0 && bit <= ((sizeof(int)*8)-1)) { printf("Enter Option:\n1] Set 2] Clear 3] Complement\n"); scanf("%d",&option); if(option == 1) num = Set_Bit_Status(num,bit); else if(option == 2) num = Clear_Bit_Status(num,bit); else if(option == 3) num = Complement_Bit_Status(num,bit); else printf("Invalid Option\n"); printf("Now Number is = %d\n",num); Print_Num_inBinary(num); } else { printf("\nInvalid Bit Positon\n"); } return 0; } void Print_Num_inBinary(int n) { int i; printf("\n%d Bit Binary Representation of a Number\n",sizeof(int)*8); for(i = ((sizeof(int)*8)-1);i >= 0;i--) { printf("%d",n >> i & 1); if(!(i%8)) printf(" "); } printf("\n\n"); } int Set_Bit_Status(int n,int b) { n = n | 1 << b; return n; } int Clear_Bit_Status(int n,int b) { n = n &~(1 << b); return n; } int Complement_Bit_Status(int n,int b) { n = n ^ 1 << b; return n; }
Output
Enter a Number = 15 32 Bit Binary Representation of a Number 00000000 00000000 00000000 00001111 Enter a bit(Position) to check = 2 Enter Option: 1] Set 2] Clear 3] Complement 2 Now Number is = 11 32 Bit Binary Representation of a Number 00000000 00000000 00000000 00001011
Enter a Number = 7 32 Bit Binary Representation of a Number 00000000 00000000 00000000 00000111 Enter a bit(Position) to check = 3 Enter Option: 1] Set 2] Clear 3] Complement 1 Now Number is = 15 32 Bit Binary Representation of a Number 00000000 00000000 00000000 00001111