How to toggle a bit at specific position in C

2 Answers

0 votes
#include <stdio.h>

int toggleBit(int n, int pos) {
    return n ^ (1 << pos);
}

void printBinary(int n, int width) {
    for (int i = width - 1; i >= 0; i--) {
        printf("%d", (n >> i) & 1);
    }
    printf("\n");
}

int main() {
    int n = 365, pos = 2;

    printBinary(n, 12);

    n = toggleBit(n, pos);

    printBinary(n, 12);

    return 0;
}

  
  
  
/*
run:
  
000101101101
000101101001
  
*/

 



answered Jul 5, 2020 by avibootz
edited Apr 2 by avibootz
0 votes
#include <stdio.h>

void print_bits(int n, int width) {
    for (int i = width - 1; i >= 0; i--) {
        printf("%d", (n >> i) & 1);
    }
    printf("\n");
}

unsigned int toggle_bit(unsigned int number, unsigned int pos) {
    return number ^ ((unsigned int )1 << pos);
}
   
int main() {
    unsigned int num = 365;
       
    print_bits(num, 12);
       
    num = toggle_bit(num, 2);

    print_bits(num, 12);
   
    return 0;
}

  
  
/*
run:
  
000101101101
000101101001
  
*/

 



answered Apr 2 by avibootz
edited Apr 2 by avibootz
...