#include <stdio.h>
#include <stdint.h>
// Define bitwise macros here
uint8_t modify_register(uint8_t reg) {
int mask=1;//0000 0001
for(int i=0;i<8;i++)
{
if(i==2 || i==7)
{
mask=mask<<i;// i=2 0000 0000 | 0000 0100=0000 0100
reg=reg|mask; // i=7 0001 0100 | 1000 0000=1001 0100
}
else
if(i==3)
{
mask=mask<<3;//i=3 0000 0100 & 1111 0111= 0000 0100
reg=reg&~mask;
}
else
if(i==5)
{
mask=mask<<5;//i=5 0000 0100 ^ 0001 0000= 0001 0100
reg=reg^mask;
}
mask=1;
}
return reg;
}
int main() {
uint8_t reg;
scanf("%hhu", ®);
printf("%u", modify_register(reg));
return 0;
}
Expected Output
164