#include <stdio.h> #include <stdint.h> // Define bitwise macros here (Binary representation is important) #define SET_BITS 0b10000100 #define CLEAR_BITS 0b00001000 #define TOGGLE_BITS 0b00100000 uint8_t modify_register(uint8_t reg) { // Apply operations in order reg |= SET_BITS; // Set Bits reg &= ~CLEAR_BITS; // Clear Bits // Solution 1 /* if(reg & TOGGLE_BITS){ reg &= ~TOGGLE_BITS; // If it is set, clear it } else{ reg |= TOGGLE_BITS; // If it is clear, set it } */ reg ^= TOGGLE_BITS; return reg; } int main() { uint8_t reg; scanf("%hhu", ®); printf("%u", modify_register(reg)); return 0; }
Test Cases
Test Results
Input
0
Expected Output
164