#include <stdio.h>
#include <stdint.h>
// Complete the function
uint16_t highest_set_bit(uint16_t reg) {
// Your logic here
int pos = -1; //fix a random position value
for(int i=0;i<16;i++) //iterate through 0 to 15 bit index and check
{
if(reg & (1 << i)) //If bit is set and store highest index if bit is set
pos = i;
}
if(pos == -1) //return if none of the bits are set
return 0;
else
return (1 << pos); //return the set bit with shifting to the highest index
}
int main() {
uint16_t reg;
scanf("%hu", ®);
uint16_t result = highest_set_bit(reg);
printf("%hu", result);
return 0;
}