#include <stdio.h>
#include <stdint.h>
// Complete the function
uint16_t highest_set_bit(uint16_t reg) {
// Your logic here
uint8_t count = -1;
while(reg)
{
count++;
if((reg & 0x8000) >> 15)
{
break;
}
reg = (reg << 1);
}
return (1<<(15-count)) & 0xFFFF;
}
int main() {
uint16_t reg;
scanf("%hu", ®);
uint16_t result = highest_set_bit(reg);
printf("%hu", result);
return 0;
}
Input
44
Expected Output
32