#include <stdio.h>
#include <stdint.h>
// Function to keep only the highest set bit
uint16_t keepHighestBit(uint16_t reg) {
if (reg == 0) return 0;
uint16_t result = 1;
while (reg >>= 1) {
result <<= 1;
}
return result;
}
int main() {
uint16_t reg;
scanf("%hu", ®);
uint16_t updatedReg = keepHighestBit(reg);
printf("%hu\n", updatedReg);
return 0;
}
Input
44
Expected Output
32