How to clear a single bit in C

1 Answer

0 votes
#include <stdio.h>
 
void print_bits(unsigned int num, unsigned int size) {
    for (int i = 1 << (size - 1); i > 0; i = i / 2) {
        (num & i) ? printf("1") : printf("0");
    }
}
 
unsigned int clear_bit(unsigned int number, unsigned int bit_number) {
    return number & ~((unsigned int )1 << bit_number);
}
 
 
int main() {
    unsigned int num = 157;
     
    print_bits(num, 8);
     
    num = clear_bit(num, 3);
     
    printf("\n");
     
    print_bits(num, 8);
 
    return 0;
}
 
 
 
/*
run:
 
10011101
10010101
 
*/

 



answered Sep 30, 2023 by avibootz

Related questions

1 answer 119 views
1 answer 101 views
101 views asked Sep 30, 2023 by avibootz
1 answer 101 views
101 views asked Sep 29, 2023 by avibootz
1 answer 107 views
107 views asked Aug 8, 2024 by avibootz
1 answer 188 views
188 views asked Jun 1, 2023 by avibootz
1 answer 186 views
186 views asked May 5, 2021 by avibootz
...