Code

#include <stdio.h>

int toggleFifthBit(int n) { 
    int bitMask = 1 << 5;
    int reg = n;
    // Thực hiện so sánh n với 1 << 5
    // Nếu n & (1 << 5) != 0 (hay là = 32) thì bit 5 = 1 
    // -> reg = n & ~bitMask
    // Nếu n & (1 << 5) = 0 thì bit 5 = 0
    // -> reg = n | bitMask
    // Ex: n = 10 = 0b00000101 , 1 << 5 = 00100000
    // n & (1 << 5) = 0 -> bit 5 = 0
    // reg = n | bitMask = 0b00000101 | 00100000 = 00100101
    reg = (n & bitMask) ? (n & ~bitMask) : (n | bitMask);
    return reg; 
}

int main() {
    int n;
    scanf("%d", &n);
    printf("%d", toggleFifthBit(n));
    return 0;
}

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

8

Expected Output

40