How to check if the Nth bit in a 32-bit integer is set or not with C

1 Answer

0 votes
#include <stdio.h>

void print_bits(unsigned int n, unsigned int size) {
    for (unsigned int i = 1 << (size - 1); i > 0; i = i / 2) {
        (n & i) ? printf("1") : printf("0");
    }
}

int main() {

    int num = 1879763, nth_bit = 11; // form right

    print_bits(num, 32);
    printf("\n");

    num = num >> nth_bit; 
    if (num & 1 == 1) 
        printf("Set");
    else
        printf("Not set");

	return 0;
}




/*
run:

00000000000111001010111011010011
Set

*/

 



answered May 17, 2023 by avibootz
...