#include <stdio.h> #include <stdint.h> #define READ_BIT(REG, BIT) // Complete the function uint16_t highest_set_bit(uint16_t reg) { // Your logic here int pos = 0,flag = 0; int retval = 0; for(int index = 0;index < 16;index++) { if((((reg) >> (index)) & 0x1U)) { flag = 1; pos = index; } } if(flag) { retval |= (1 << pos); } return retval; } int main() { uint16_t reg; scanf("%hu", ®); uint16_t result = highest_set_bit(reg); printf("%hu", result); return 0; }
Test Cases
Test Results
Input
44
Expected Output
32