#include <stdio.h> #include <stdint.h> typedef union { uint8_t value; struct{ unsigned SET_BIT_0 : 1; unsigned SET_BIT_1 : 1; unsigned SET_BIT_2 : 1; unsigned SET_BIT_3 : 1; unsigned SET_BIT_4 : 1; unsigned SET_BIT_5 : 1; unsigned SET_BIT_6 : 1; unsigned SET_BIT_7 : 1; }bit; } Regiter; uint8_t modify_register(uint8_t reg) { Regiter data ; data.value = reg; data.bit.SET_BIT_2 = 1; data.bit.SET_BIT_3 = 0; data.bit.SET_BIT_7 = 1; if (data.bit.SET_BIT_5 == 1) { data.bit.SET_BIT_5 = 0; } else { data.bit.SET_BIT_5 = 1; } return data.value; } int main() { uint8_t reg; scanf("%hhu", ®); printf("%u", modify_register(reg)); return 0; }
Test Cases
Test Results
Input
0
Expected Output
164