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

1 Answer

0 votes
#include <stdio.h>

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


int main() {

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

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

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

	return 0;
}




/*
run:

1000100001001011
Set

*/

 



answered May 17, 2023 by avibootz
...