C Program to Check a Bit of an Integer

An integer consists of 32 bits. Here we’ll see how to write C program to check whether a particular bit is 0 or 1.

The above diagram shows the binary representation of an integer 8,55,119. Bit position will start from 0. That means the least significant bit position is 0 and the most significant bit position is 31. So the 10-th bit of the above integer is 1.

Program to Check a Bit

#include <stdio.h>

int check_bit(int val, int n) {
  return ((val >> n) & 0x01);
}

int main(){
  int x = 0;
  int pos = 0;

  printf("Enter an integer: ");
  scanf("%d", &x);

  printf("Enter position: ");
  scanf("%d", &pos);

  printf("%d-th position of %d is %d.\n", pos, x, check_bit(x, pos));
}

The check_bit() function returns the n-th bit of val. If n-th bit is 1, the function returns 1. Similarly if n-th bit is 0, the function returns 0.

The check_bit() function first brings the n-th bit to the 0-th position by shifting n bits (val >> n). If we do bitwise AND (&) operation with the shifted number, the result will be equal to the 0-th bit position.

Here is the output of the program.

Enter an integer: 855119
Enter position: 10
10-th position of 855119 is 1.

Enter an integer: 855119
Enter position: 9
9-th position of 855119 is 0.

Author: Srikanta

I write here to help the readers learn and understand computer programing, algorithms, networking, OS concepts etc. in a simple way. I have 20 years of working experience in computer networking and industrial automation.


If you also want to contribute, click here.

Leave a Reply

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

0
0
0
0
3
0